B0_metaSourceMetadata.
Typed key-value dictionaries. These dictionaries are attached to various b0 definitions to specify metadata about them.
The module defines a few standard keys.
The recommended way of formatting constant dictionaries is:
open B0_kit.V000 (* Defines the ~~ operator *)
let meta =
B0_meta.empty
|> ~~ B0_meta.authors ["The project programmers"]
|> ~~ B0_meta.homepage "https://example.org"
|> ~~ B0_meta.tag B0_opam.tagThe type for keys with lookup value of type 'a.
The type for metadata.
has_tag tag m is the value of tag in m or its default value (that is false for those tags created with Key.make_tag).
Raises Invalid_argument if tag has no default; regardless of whether tag is bound in m.
add_some k o m is m if o is None and m with k bound to v if o is Some v.
add_some_or_default k o m is m with k bound to v if o is Some v and Key.default k otherwise. Raises Invalid_argument if k has no default (regardless of o's value).
add_if_undef k v m is m with k bound to v if k is unbound in m.
override m ~by overrides bindings of m by those by. The result has all the bindings of by and those of m which are not in by.
find_or_default k m is the binding of k in m or the default value of k. Raises Invalid_argument if k has no default; regardless of whether k is bound in m.
get k m is the binding of k in m. Raises Invalid_argument if there is no such binding. This does not lookup the default of k.
The type for metadata bindings, a key and its value.
find_binding k m is the binding for k in m (if any).
find_binding_by_name n m is the binding named n in m (if any).
find_binding k m is the binding for k in m. Raises Invalid_argument if there is no such binding.
get_binding_by_name n m is the binding named n in m. Raises Invalid_argument if there is no such binding.
pp_binding formats a binding using B0_std.Fmt.field and the key's value formatter.
fold f m acc folds f over the bindings of m starting with acc.
pp formats metadata using pp_binding.
pp_non_empty is B0_std.Fmt.cut followed by pp if metadata is non empty and B0_std.Fmt.nop otherwise.
description_tags describes a list of classification tags used for documentation.
The type for SPDX license identifiers. If your license is not in the list you can use anything if prefixed by "LicenseRef-".
licenses describes a list of licenses. Some processors like file generators consider the first license of this list to be the main license of your project and use it accordingly.
public indicates if an entity is public. Defaults to false. The semantics depends on the context but it usually means that it exports the entity in an underlying global namespace.
run tags entities that should be run in a particular context. Defaults to false.