-let load_metadata ~fname =
- let ic = open_in fname in
- HExtlib.finally
- (fun () -> close_in ic)
- (fun () ->
- try
- let file_magic = input_binary_int ic in
- if file_magic <> magic then raise (Version_mismatch fname);
- let file_checksum = input_binary_int ic in
- let marshalled = HExtlib.input_all ic in
- let checksum = Hashtbl.hash marshalled in
- if checksum <> file_checksum then raise (Checksum_failure fname);
- let (metadata:metadata list) = Marshal.from_string marshalled 0 in
- metadata
- with End_of_file -> raise (Corrupt_metadata fname))
- ()
+let save_metadata ~fname metadata = save_metadata_to_file ~fname metadata
+let load_metadata ~fname = load_metadata_from_file ~fname