unison

Fork of Unison, a bi-directional file synchronization tool
git clone git://git.laack.co/unison.git
Log | Files | Refs | README | LICENSE

path.mli (1261B)


      1 (* Unison file synchronizer: src/path.mli *)
      2 (* Copyright 1999-2020, Benjamin C. Pierce (see COPYING for details) *)
      3 
      4 (* Abstract type of relative pathnames *)
      5 type 'a path
      6 
      7 (* Pathname valid on both replicas (case insensitive in case
      8    insensitive mode) *)
      9 type t = [`Global] path
     10 
     11 (* Pathname specialized to a replica (case sensitive on a case
     12    sensitive filesystem) *)
     13 type local = [`Local] path
     14 
     15 val mpath : 'a path Umarshal.t
     16 val m : t Umarshal.t
     17 val mlocal : local Umarshal.t
     18 
     19 val empty : 'a path
     20 val length : t -> int
     21 val isEmpty : local -> bool
     22 
     23 val child : 'a path -> Name.t -> 'a path
     24 val parent : local -> local
     25 val finalName : t -> Name.t option
     26 val deconstruct : 'a path -> (Name.t * 'a path) option
     27 val deconstructRev : local -> (Name.t * local) option
     28 
     29 val fromString : string -> 'a path
     30 val toNames : t -> Name.t list
     31 val toString : 'a path -> string
     32 val toDebugString : local -> string
     33 
     34 val addSuffixToFinalName : local -> string -> local
     35 val addPrefixToFinalName : local -> string -> local
     36 val addToFinalName : local -> string -> local
     37   (* Add to the final name, but before any file extension. *)
     38 
     39 val compare : t -> t -> int
     40 
     41 val followLink : local -> bool
     42 val followPred : Pred.t
     43 
     44 val forceLocal : t -> local
     45 val makeGlobal : local -> t