Module B0_meta Metadata.
Typed key-value dictionaries. Values of this type are used with various B0 definitions to specify metadata.
The module defines a few standard keys . The recommended way of formatting constant dictionaries is:
let meta =
let open B0_meta in (* This can be omitted *)
empty
|> add authors ["The project programmers"]
|> add homepage "https://example.org"
|> tag B0_opam.Meta.tagXXX. They used to be serializable, see if we don't want that again.
KeysThe type for keys whose lookup value is of type 'a.
The type for metadata bindings.
pp_binding formats a binding using B0_std.Fmt.field and the key's value print function.
empty is the empty metadata.
is_empty m is true iff m is empty.
val mem : 'a key -> t -> boolmem k m is true iff m has a binding for k.
val add : 'a key -> 'a -> t -> t add k v m is m with k bound to v.
val add_if_some : 'a key -> 'a option -> t -> t add_if_some k o m is m if o is None and m with k bound to v if o is Some v.
val tag : unit key -> t -> t val rem : 'a key -> t -> t rem k m is m wihtout a binding for k.
val find : 'a key -> t -> 'a optionfind k m is the binding of k in m (if any).
find_binding k m is the binding for k in m (if any).
val find_binding_by_name : string -> t -> binding optionfind_binding_by_name n m is the binding named n in m (if any).
val get : 'a key -> t -> 'a get k m is the binding of k in m. Raises Invalid_argument if there is no such binding.
find_binding k m is the binding for k in m. Raises Invalid_argument if there is no such binding.
val get_binding_by_name : string -> t -> binding get_binding_by_name n m is the binding named n in m. Raises Invalid_argument if there is no such binding.
val fold : (binding -> 'a -> 'a ) -> t -> 'a -> 'a fold f m acc folds f over the bindings of m starting with acc.
Formattingpp formats metadata using pp_bindings.
pp_non_empty is Fmt.cut followed by pp if metadata is non empty and Fmt.nop otherwise.
Standard keys End-user informationval authors : string list key authors describes a list of persons with authorship.
description_tags describes a list of classification tags used for documentation.
val description : string key description is a long description for the entity.
val homepage : string key issues is an URI to an issue tracker.
issues is an URI to an issue tracker.
val licenses : string list key val maintainers : string list key maintainers describe a list of persons with maintainership.
val online_doc : string key online_doc is an URI to online documentation.
repo is an URI to a VCS system.
val synopsis : string key synopsis is a one line synopsis for an entity.
bench tags benchmarking entities.
build tags build system entities.
dev tags development entities.
doc tags documentation entities.
exe tags executable entities.
test tags testing entities.
lib tags library entities.
Entity propertiesval exe_name : string key exe_name is an executable name without the platform specific executable extension. FIXME rename that to tool.
exe_file is an absolute file path to an executable build by the unit.