indexed-read.tri (748B)
1 !import io_v2 as IO 2 !export read 3 !export probe 4 5 -- No store layout or publication policy is native. Supply an exact byte frame, 6 -- expected indexed-object digest, private-spool directory, and disk-size budget. 7 read path directory limit size digest = IO.io <| IO.scope (owner : do IO.require 8 reader <- IO.openReader owner path 9 IO.readIndexedTree reader directory limit size digest) 10 11 -- Preserve ordinary failures and observe consumption without retrying a frame. 12 probe path directory limit size digest = IO.io <| IO.scope (owner : do IO.require 13 reader <- IO.openReader owner path 14 IO.bind (IO.readIndexedTree reader directory limit size digest) (decoded : do IO.require 15 position <- IO.filePosition reader 16 IO.pure [decoded position]))