module Register:functor (Datatype:Datatype.S) ->functor (Local_state:State.Localwith type t = Datatype.t) ->functor (Info:siginclude State_builder.Infoval unique_name :stringend) ->Swith module Datatype = Datatype
Register(Datatype)(State)(Info) registers a new state.
Datatype represents the datatype of a state, Local_state
explains how to deal with the client-side state and Info are additional
required information.
| Parameters: |
|
val self : State.tThe kind of the registered state.
val name : string
val mark_as_computed : ?project:Project.t -> unit -> unitIndicate that the registered state will not change again for the
given project (default is current ()).
val is_computed : ?project:Project.t -> unit -> boolReturns true iff the registered state will not change again for the
given project (default is current ()).
Exportation of some inputs (easier use of State_builder.Register).
module Datatype:Datatype.S
val add_hook_on_update : (Datatype.t -> unit) -> unitAdd an hook which is applied each time (just before) the project library changes the local value of the state.
val howto_marshal : (Datatype.t -> 'a) -> ('a -> Datatype.t) -> unithowto_marshal marshal unmarshal registers a custom couple of
functions (marshal, unmarshal) to be used for serialization.
Default functions are identities. In particular, this
function must be used if Datatype.t is not marshallable and
do_not_save is not called.