Module Tjr_path_resolution.Path_resolution

Path resolution algorithm

val is_finished : 'a Intf.state -> bool
val get_next_comp : 'a Intf.state -> [> `Comp_with_slash of string | `Finished_no_slash of string | `Finished_slash of string | `Root_finished | `Root_unfinished ] * 'a Intf.state
val step : monad_ops:'a Tjr_monad.monad_ops -> fs_ops:('b'c'd'a) Intf.fs_ops -> 'c Intf.state -> ([> `Error of [> `File_followed_by_slash_etc of 'c Intf.state * Intf.comp_ * 'b ] | `Finished_no_slash of Intf.comp_ * 'c | `Finished_root | `Finished_slash of Intf.comp_ * 'c | `Missing_slash of Intf.comp_ * 'c Intf.state | `Ok of 'c Intf.state ]'a) Tjr_monad.m
val resolve_butlast : monad_ops:'a Tjr_monad.monad_ops -> fs_ops:('b'c'd'a) Intf.fs_ops -> cwd:'c -> string -> ([> `Error of [> `File_followed_by_slash_etc of 'c Intf.state * Intf.comp_ * 'b ] | `Finished_no_slash of Intf.comp_ * 'c | `Finished_root | `Finished_slash of Intf.comp_ * 'c | `Missing_slash of Intf.comp_ * 'c Intf.state ]'a) Tjr_monad.m

Resolve all but the last component; not used by the main `resolve` function

val resolve' : monad_ops:'a Tjr_monad.monad_ops -> fs_ops:('b'c'd'a) Intf.fs_ops -> follow_last_symlink:Intf.follow_last_symlink -> cwd:'c -> string -> ([> `Error of [> `File_followed_by_slash_etc of 'c Intf.state * Intf.comp_ * 'b ] | `Finished_no_slash_dir of 'c * Intf.comp_ * 'c | `Finished_no_slash_file of 'c * Intf.comp_ * 'b | `Finished_no_slash_symlink of 'c * Intf.comp_ * 'd * string | `Finished_root | `Finished_slash_dir of 'c * Intf.comp_ * 'c | `Finished_slash_file of 'c * Intf.comp_ * 'b | `Missing_finished_no_slash of 'c * Intf.comp_ | `Missing_finished_slash of 'c * Intf.comp_ | `Missing_slash of Intf.comp_ * 'c Intf.state ]'a) Tjr_monad.m
val simplified_result_root : fs_ops:('a'b'c'd) Intf.fs_ops -> ('e'b'f) Intf.simplified_result

a "special" result for root

val resolve_simplified : monad_ops:'a Tjr_monad.monad_ops -> fs_ops:('b'c'd'a) Intf.fs_ops -> follow_last_symlink:Intf.follow_last_symlink -> cwd:'c -> string -> ((('b'c'd) Intf.simplified_result[> `File_followed_by_slash_etc of 'c Intf.state * Intf.comp_ * 'b | `Missing_slash_etc of Intf.comp_ * 'c * string ]) Stdlib.result'a) Tjr_monad.m
val resolve : monad_ops:'t Tjr_monad.monad_ops -> fs_ops:('fid'did'sid't) Intf.fs_ops -> follow_last_symlink:Intf.follow_last_symlink -> cwd:'did -> string -> ((('fid'did'sid) Intf.simplified_result[> `File_followed_by_slash_etc of 'did Intf.state * Intf.comp_ * 'fid | `Missing_slash_etc of Intf.comp_ * 'did * string ]) Stdlib.result't) Tjr_monad.m