fn seedInput(fs: Fs) -> Bool {
    let created: Maybe<owned<File>> = std.fs.create(fs, ".zero/conformance/common-file-copy-input.txt")
    if created.has {
        var file: owned<File> = created.value
        return std.fs.writeAll(&mut file, std.mem.span("zero file copy\n"))
    }
    return false
}

pub fn main(world: World) -> Void raises {
    let fs: Fs = std.fs.host()
    if seedInput(fs) {
        let input: Maybe<owned<File>> = std.fs.open(fs, ".zero/conformance/common-file-copy-input.txt")
        let output: Maybe<owned<File>> = std.fs.create(fs, ".zero/conformance/common-file-copy-output.txt")
        if input.has && output.has {
            var src: owned<File> = input.value
            var dst: owned<File> = output.value
            var buf: [15]u8 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
            let read: Maybe<usize> = std.fs.read(&mut src, buf)
            if read.has && read.value == 15 && std.fs.writeAll(&mut dst, buf) {
                check world.out.write("file copy ok\n")
            }
        }
    }
}
