Frama-C API - Option_ref
Build a reference on an option.
Parameters
module Data : Datatype.S
Signature
include Ref with type data = Data.t
include S
val self : State.t
The kind of the registered state.
val mark_as_computed : ?project:Project.t -> unit -> unit
Indicate that the registered state will not change again for the given project (default is current ()
).
val is_computed : ?project:Project.t -> unit -> bool
Returns 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) -> unit
Add 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) -> unit
howto_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.
type data = Data.t
Type of the referenced value.
val set : data -> unit
Change the referenced value.
val get : unit -> data
Get the referenced value.
Memoization. Compute on need the stored value. If the data is already computed (i.e. is not None
), it is possible to change with change
.
val may : (data -> unit) -> unit
val get_option : unit -> data option
val add_hook_on_change : (data option -> unit) -> unit
Add an hook which is applied each time (just after) the value of the state changes inside the current project.