Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file keyed_container_clause_intf.ml
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374open!Baseopen!ImportmoduletypeX=sigmoduleSubmodule_form:sig(** The name of the submodule, if it were to appear in the "submodule" form.
This should be capitalized.
Examples: "Set" for [Foo.Set.t] and "Table" for ['data Foo.Table.t].
*)valname:string(** The number of type parameters expected, if it were to appear in the "submodule"
form.
Examples: 0 for [Foo.Set.t] and 1 for ['data Foo.Table.t].
*)valarity:int(** The value types that will be expanded recursively.
You may assume that [type_parameters] has the expected [arity].
*)valvalue_types:type_parameters:core_typelist->core_typelistendmoduleParameterized_form:sig(** The name of the module, if it were to appear in the "parameterized" form. This
should be capitalized.
Examples: "Set" for [('elt, 'cmp) Set.t] and "Hashtbl" for [('key, 'data) Hashtbl.t].
*)valname:string(** The number of type parameters expected, if it were to appear in the
"parameterized" form.
Examples: 2 for [('elt, 'cmp) Set.t] and 3 for [('key, 'data, 'cmp) Map.t].
*)valarity:int(** The type that is serialized atomically.
You may assume that [type_parameters] has the expected [arity].
*)valkey_type:type_parameters:core_typelist->core_typeoption(** The value types that will be expanded recursively.
You may assume that [type_parameters] has the expected [arity].
*)valvalue_types:type_parameters:core_typelist->core_typelistendendmoduletypeKeyed_container_clause=sig(** Generates a matcher that operates over types of the forms:
{[ (a1, ..., an) K.%{Submodule_form.name}.t ]} (the "submodule" form)
{[ (k, a1, ..., an) %{Parameterized_form.name}.t ]} (the "parameterized" form)
in order to generate:
{v
Streamable.Of_%{String.lowercase Parameterized_form.name}
(K)
(<expansion of a1>)
(...)
(<expansion of an>)
v}
It is expected that values of type [K.t]/[k] can be serialized atomically.
*)moduleMake(X:X):sigvalmaybe_match:Clause.tendend