@@ -8,6 +8,7 @@ module ArraySet = Util.ArraySet
88module Arraytbl = Util. Arraytbl
99module AM = Metadata. ArrayMetadata
1010module GM = Metadata. GroupMetadata
11+ module ST = Extensions. StorageTransformers
1112
1213module Make (M : STORE ) : S with type t = M. t = struct
1314 include M
@@ -154,11 +155,12 @@ module Make (M : STORE) : S with type t = M.t = struct
154155 in
155156 let codecs = AM. codecs meta in
156157 let prefix = ArrayNode. to_key node ^ " /" in
158+ let tf = AM. storage_transformers meta in
157159 let cindices = ArraySet. of_seq @@ Arraytbl. to_seq_keys tbl in
158160 ArraySet. fold (fun idx acc ->
159161 acc >> = fun () ->
160162 let chunkkey = prefix ^ AM. chunk_key meta idx in
161- (match get t chunkkey with
163+ (match ST. get ( module M ) t tf chunkkey with
162164 | Ok b ->
163165 Codecs.Chain. decode codecs repr b
164166 | Error _ ->
@@ -173,7 +175,7 @@ module Make (M : STORE) : S with type t = M.t = struct
173175 List. iter
174176 (fun (c , v ) -> Ndarray. set arr c v) @@ Arraytbl. find_all tbl idx;
175177 Codecs.Chain. encode codecs arr >> | fun encoded ->
176- set t chunkkey encoded) cindices (Ok () )
178+ ST. set ( module M ) t tf chunkkey encoded) cindices (Ok () )
177179
178180 let get_array
179181 : type a b .
@@ -206,6 +208,7 @@ module Make (M : STORE) : S with type t = M.t = struct
206208 let tbl = Arraytbl. create @@ Array. length pair in
207209 let prefix = ArrayNode. to_key node ^ " /" in
208210 let chain = AM. codecs meta in
211+ let tf = AM. storage_transformers meta in
209212 let repr =
210213 {kind
211214 ;shape = AM. chunk_shape meta
@@ -217,7 +220,7 @@ module Make (M : STORE) : S with type t = M.t = struct
217220 | Some arr ->
218221 Ok (Ndarray. get arr coord :: l)
219222 | None ->
220- (match get t @@ prefix ^ AM. chunk_key meta idx with
223+ (match ST. get ( module M ) t tf @@ prefix ^ AM. chunk_key meta idx with
221224 | Ok b ->
222225 Codecs.Chain. decode chain repr b
223226 | Error _ ->
@@ -243,8 +246,9 @@ module Make (M : STORE) : S with type t = M.t = struct
243246 ArraySet. of_list @@ AM. chunk_indices meta @@ AM. shape meta in
244247 let s' =
245248 ArraySet. of_list @@ AM. chunk_indices meta shape in
249+ let tf = AM. storage_transformers meta in
246250 ArraySet. iter
247- (fun v -> erase t @@ pre ^ AM. chunk_key meta v)
251+ (fun v -> ST. erase ( module M ) t tf @@ pre ^ AM. chunk_key meta v)
248252 ArraySet. (diff s s');
249253 Ok (set t mkey @@ AM. encode @@ AM. update_shape meta shape)
250254end
0 commit comments