12345678910111213141516171819202122232425262728293031323334353637383940414243444546moduleEnv=structletflagname=trySys.getenvname<>""with|Not_found->falseletone_ofnamekvs=letvo=trySome(Sys.getenvname)withNot_found->Noneinmatchvowith|None->None|Somek->matchList.assoc_optkkvswith|Somev->Somev|None->failwith(Printf.sprintf"%s: invalid value"name)letintname=letvo=trySome(Sys.getenvname)withNot_found->Noneinmatchvowith|None->None|Somen->matchint_of_stringnwith|v->Somev|exception_->failwith(Printf.sprintf"%s: <INT>"name)letboolname=letvo=trySome(Sys.getenvname)withNot_found->Noneinmatchvowith|None->None|Somen->matchbool_of_stringnwith|v->Somev|exception_->failwith(Printf.sprintf"%s: <true/false>"name)end(* Do not use this in production *)letuse_reachable_words=Env.flag"PLEBEIA_USE_REACHABLE_WORDS"letmadvise_read_ahead=Env.flag"PLEBEIA_READ_AHEAD"letcount_segments=Env.flag"PLEBEIA_SEGMENT_COUNT"letcell_bytes_override=Env.int"PLEBEIA_CELL_BYTES_OVERRIDE"lethash_bytes_override=Env.int"PLEBEIA_HASH_BYTES_OVERRIDE"lethash_function_override=Env.one_of"PLEBEIA_HASH_FUNCTION_OVERRIDE"["blake2b",`Blake2B;"blake3",`Blake3]letkeep_hash_override=Env.bool"PLEBEIA_KEEP_HASH_OVERRIDE"