///|
/// File fixture or caller-selected path is assembled through the public API.
async fn main {
let args = @env.args()
let mut path = "fixtures/earthquakes-2024-01-01.csv"
for i in 0..= args.length() {
fail("--input requires a file path")
}
path = args[i + 1]
}
}
let data = @fs.read_file(path).binary()
let object = @ledger.ObjectSpec::new(
path,
data.length().to_int64(),
"\"fixture-v1\"",
@ledger.digest(data),
)
let session = @ledger.Session::new(object, chunk_size=4096)
let leases = []
while session.reserve_missing() is Some(lease) {
leases.push(lease)
}
let storage = FixedArray::make(data.length(), b'\x00')
for i in 0.. {
Bytes::from_array(storage[range.start.to_int():range.end.to_int()])
})
println(
"verified \{restored.confirmed_bytes()} bytes; invalidated \{invalidated} block; sha256=\{object.sha256}",
)
}