///|
fn main raise {
let codec = try! @lib.Codec::new(2, 1)
let object = try! @lib.encode_object(
codec,
b"abcdefghijk",
111,
stripe_payload_limit=4,
)
let catalog = @lib.FrameCatalog::new(object.manifest())
let selected = object
.frames()
.filter(fn(frame) { frame.stripe_index() != 1 && frame.shard_index() < 2 })
assert_eq(try! catalog.add_many(selected), 4)
let ranges = try! catalog.recoverable_ranges()
assert_eq(ranges.length(), 2)
for range in ranges {
let bytes = try! catalog.recover_range(range.start(), range.length())
assert_eq(bytes.length(), range.length())
}
println("Atomic catalog admission and available byte ranges: ok")
}