package b0
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha512=e9aa779e66c08fc763019f16d4706f465d16c05d6400b58fbd0313317ef33ddea51952e2b058db28e65f7ddb7012f328c8bf02d8f1da17bb543348541a2587f0
doc/b0.file/B0_meta/index.html
Module B0_metaSource
Metadata.
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.tagKeys
The type for keys with lookup value of type 'a.
Metadata
The type for metadata.
Predicates
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.
Adding and removing
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.
Lookup
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.
Bindings
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.
Traversing
fold f m acc folds f over the bindings of m starting with acc.
Formatting
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.
Standard keys
End-user information
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.
Entity tags
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.