plebeia

Functional storage using Merkle Patricia tree
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library plebeia.test_utils
module Monad : sig ... end
type 'a t = cursor -> ( cursor * 'a, Plebeia.Error.t ) Stdlib.result Lwt.t
val return : 'a -> 'a t
val bind : 'a t -> ( 'a -> 'b t ) -> 'b t
val map : ( 'a -> 'b ) -> 'a t -> 'b t
val mapM : ( 'a -> 'b t ) -> 'a list -> 'b list t
val mapM_ : ( 'a -> unit t ) -> 'a list -> unit t
val iterM : ( 'a -> unit t ) -> 'a list -> unit t
val fold_leftM : ( 'a -> 'b -> 'a t ) -> 'a -> 'b list -> 'a t
val parseM : ( 'a -> 'b list -> ('a * 'b list) t ) -> 'a -> 'b list -> 'a t
module Infix = Monad.Infix
module Syntax = Monad.Syntax
val lift : 'a Op.t -> 'a t
val lift_op : 'a Op.t -> 'a t
val lift_lwt : 'a Lwt.t -> 'a t
val lift_result : ( 'a, Plebeia.Error.t ) Plebeia.Result.t -> 'a t
val lift_result_lwt : ( 'a, Plebeia.Error.t ) Plebeia.Result_lwt.t -> 'a t
val fail : error -> 'a t
val raw_cursor : Plebeia.Cursor.t t
val chdir_parent : unit t
val chdir_root : unit t
val chdir : ?dig:bool -> Path.t -> unit t
val path : Path.t t
val get : Path.t -> (cursor * view) t
val set : Name.t list -> cursor -> unit t
val copy : Path.t -> Name.t list -> unit t
val cat : Path.t -> Plebeia.Value.t t
val write : Path.name list -> Plebeia.Value.t -> unit t
val rm : ?recursive:bool -> ?ignore_error:bool -> Path.t -> bool t
val rmdir : ?ignore_error:bool -> Path.t -> bool t
val compute_hash : Plebeia.Hash.Prefix.t t
val may_forget : unit t
val do_then : ( 'a -> 'b ) -> ( 'a -> 'c ) -> 'a -> 'c
val traverse : ('a * [< `Exit | `Right of 'b | `Up of Plebeia.Segment.Segs.t * 'b Right ] as 'b * Plebeia.Segment.Segs.t * Plebeia.Cursor.t) -> ( 'a -> Plebeia.Segment.Segs.t -> Plebeia.Cursor.t -> ( [< `Continue | `Exit | `Up ] * 'c, Plebeia.Error.t ) Stdlib.result Lwt.t ) -> ( 'c * [> `Exit | `Up of Plebeia.Segment.Segs.t * 'b ] * Plebeia.Segment.Segs.t * Plebeia.Cursor.t, Plebeia.Error.t ) Stdlib.result Lwt.t
val raw_fold : 'a -> Plebeia.Cursor.t -> ( 'a -> Plebeia.Segment.Segs.t -> Plebeia.Cursor.t -> ( [< `Continue | `Exit | `Up ] * 'a, Plebeia.Error.t ) Stdlib.result Lwt.t ) -> ( Plebeia.Cursor.t * 'a, Plebeia.Error.t ) Stdlib.result Lwt.t
val fold_here : 'a -> ( 'a -> Path.t -> cursor -> ( [ `Continue | `Exit | `Up ] * 'a, Plebeia.Error.t ) Stdlib.result Lwt.t ) -> cursor -> ( cursor * 'a, Plebeia.Error.t ) Stdlib.result Lwt.t
val fold'_here : ?depth:[< `Eq of int | `Ge of int | `Gt of int | `Le of int | `Lt of int ] -> 'a -> ( 'a -> Path.t -> cursor -> ( 'a, Plebeia.Error.t ) Stdlib.result Lwt.t ) -> 'a t
val at_dir : string -> Path.t -> 'a t -> 'a t
val fold : 'a -> Path.t -> ( 'a -> Path.t -> cursor -> ( [ `Continue | `Exit | `Up ] * 'a, Plebeia.Error.t ) Stdlib.result Lwt.t ) -> 'a t
val fold' : ?depth:[< `Eq of int | `Ge of int | `Gt of int | `Le of int | `Lt of int ] -> 'a -> Path.t -> ( 'a -> Path.t -> cursor -> ( 'a, Plebeia.Error.t ) Stdlib.result Lwt.t ) -> 'a t
val ls : Path.t -> (Name.t * cursor) list t
val run : 'a -> ( 'a -> 'b ) -> 'b