package b0
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha512=e9aa779e66c08fc763019f16d4706f465d16c05d6400b58fbd0313317ef33ddea51952e2b058db28e65f7ddb7012f328c8bf02d8f1da17bb543348541a2587f0
doc/b0.file/B0_meta/index.html
Module B0_meta
Source
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.tag
Keys
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
.