YAML Manipulation Tools

YAML Manipulation Tools — Provides private YAML utilities for internal use.

Stability Level

Private, unless otherwise indicated

Functions

int write_yaml_string ()
void modulemd_yaml_string_free ()
const gchar * mmd_yaml_get_event_name ()
#define MMD_INIT_YAML_PARSER()
#define MMD_INIT_YAML_EMITTER()
#define MMD_INIT_YAML_EVENT()
#define MMD_INIT_YAML_STRING()
#define MMD_REINIT_YAML_STRING()
#define YAML_PARSER_PARSE_WITH_EXIT_FULL()
#define YAML_PARSER_PARSE_WITH_EXIT_BOOL()
#define YAML_PARSER_PARSE_WITH_EXIT_INT()
#define YAML_PARSER_PARSE_WITH_EXIT()
#define MMD_EMIT_WITH_EXIT_FULL()
#define MMD_EMIT_WITH_EXIT()
#define MMD_EMIT_WITH_EXIT_PTR()
#define MMD_YAML_ERROR_EVENT_EXIT_FULL()
#define MMD_YAML_ERROR_EVENT_EXIT()
#define MMD_YAML_ERROR_EVENT_EXIT_BOOL()
#define MMD_YAML_ERROR_EVENT_EXIT_INT()
#define MMD_SET_PARSED_YAML_STRING()
gboolean mmd_emitter_start_stream ()
gboolean mmd_emitter_end_stream ()
gboolean mmd_emitter_start_document ()
gboolean mmd_emitter_end_document ()
gboolean mmd_emitter_start_mapping ()
gboolean mmd_emitter_end_mapping ()
gboolean mmd_emitter_start_sequence ()
gboolean mmd_emitter_end_sequence ()
gboolean mmd_emitter_scalar ()
gboolean mmd_emitter_scalar_string ()
gboolean mmd_emitter_strv ()
GDate * modulemd_yaml_parse_date ()
gchar * modulemd_yaml_parse_string ()
gboolean modulemd_yaml_parse_bool ()
gint64 modulemd_yaml_parse_int64 ()
guint64 modulemd_yaml_parse_uint64 ()
GHashTable * modulemd_yaml_parse_string_set ()
GHashTable * modulemd_yaml_parse_string_set_from_map ()
GHashTable * modulemd_yaml_parse_string_string_map ()
GHashTable * modulemd_yaml_parse_nested_set ()
gboolean modulemd_yaml_emit_nested_set ()
ModulemdSubdocumentInfo * modulemd_yaml_parse_document_type ()
gboolean modulemd_yaml_emit_document_headers ()
gboolean modulemd_yaml_emit_variant ()
GVariant * mmd_variant_from_scalar ()
GVariant * mmd_variant_from_mapping ()
GVariant * mmd_variant_from_sequence ()
GVariant * mmd_parse_xmd ()
gboolean skip_unknown_yaml ()
#define SKIP_UNKNOWN()
#define NON_EMPTY_TABLE()
#define NON_EMPTY_ARRAY()
#define EMIT_SCALAR_FULL()
#define EMIT_SCALAR()
#define EMIT_SCALAR_STRING()
#define EMIT_KEY_VALUE_FULL()
#define EMIT_KEY_VALUE()
#define EMIT_KEY_VALUE_STRING()
#define EMIT_KEY_VALUE_IF_SET()
#define EMIT_KEY_VALUE_STRING_IF_SET()
#define EMIT_MAPPING_START_WITH_STYLE()
#define EMIT_MAPPING_START()
#define EMIT_MAPPING_END()
#define EMIT_SEQUENCE_START_WITH_STYLE()
#define EMIT_SEQUENCE_START()
#define EMIT_SEQUENCE_END()
#define EMIT_HASHTABLE_VALUES_IF_NON_EMPTY()
#define EMIT_HASHTABLE_KEY_VALUES_IF_NON_EMPTY()
#define EMIT_STRING_SET()
#define EMIT_STRING_SET_IF_NON_EMPTY()
#define EMIT_STRING_SET_FULL()
#define EMIT_ARRAY_VALUES()
#define EMIT_ARRAY_VALUES_IF_NON_EMPTY()

Types and Values

Description

Functions

write_yaml_string ()

int
write_yaml_string (void *data,
                   unsigned char *buffer,
                   size_t size);

Additionally memory for data is automatically allocated if necessary.

Parameters

data

A void pointer to a modulemd_yaml_string object.

[inout]

buffer

YAML text to append to data .

[in]

size

The number of bytes from buffer to append to data .

[in]

Since: 2.0


modulemd_yaml_string_free ()

void
modulemd_yaml_string_free (modulemd_yaml_string *yaml_string);

Parameters

yaml_string

A pointer to a modulemd_yaml_string to be freed.

[inout]

Since: 2.0


mmd_yaml_get_event_name ()

const gchar *
mmd_yaml_get_event_name (yaml_event_type_t type);

Parameters

type

A libyaml event type.

[in]

Returns

The string representation for type .

Since: 2.0


MMD_INIT_YAML_PARSER()

#define             MMD_INIT_YAML_PARSER(_parser)

This convenience macro allocates and initializes a new libyaml parser object named _parser .

Parameters

_parser

A variable name to use for the new parser object.

[out]

Since: 2.0


MMD_INIT_YAML_EMITTER()

#define             MMD_INIT_YAML_EMITTER(_emitter)

This convenience macro allocates and initializes a new libyaml emitter object named _emitter .

Parameters

_emitter

A variable name to use for the new emitter object.

[out]

Since: 2.0


MMD_INIT_YAML_EVENT()

#define             MMD_INIT_YAML_EVENT(_event)

This convenience macro allocates and initializes a new libyaml event object named _event .

Parameters

_event

A variable name to use for the new event object.

[out]

Since: 2.0


MMD_INIT_YAML_STRING()

#define             MMD_INIT_YAML_STRING(_emitter, _string)

This convenience macro allocates and initializes a new yaml string object named _string and associates it as the output target for the libyaml emitter object _emitter .

Parameters

_emitter

A libyaml emitter object.

[inout]

_string

A variable name to use for the new yaml string object.

[out]

Since: 2.0


MMD_REINIT_YAML_STRING()

#define             MMD_REINIT_YAML_STRING(_emitter, _string)

This convenience macro deletes then initializes a new libyaml emitter named _emitter , then deletes, reallocates, and initializes a new yaml string object named _string and associates it as the output target for _emitter .

Parameters

_emitter

A libyaml emitter object to reinitialize.

[inout]

_string

A variable name to reinitialize with a new yaml string object.

[inout]

Since: 2.0


YAML_PARSER_PARSE_WITH_EXIT_FULL()

#define             YAML_PARSER_PARSE_WITH_EXIT_FULL(_parser, _returnval, _event, _error)

DIRECT USE OF THIS MACRO SHOULD BE AVOIDED. This is the internal implementation for YAML_PARSER_PARSE_WITH_EXIT_BOOL, YAML_PARSER_PARSE_WITH_EXIT_INT, and YAML_PARSER_PARSE_WITH_EXIT which should be used instead.

Parameters

_parser

A libyaml parser object positioned at the beginning of an event.

[inout]

_returnval

The value to return in case of a parsing error.

[in]

_event

Returns the libyaml event that was parsed.

[out]

_error

A GError that will return the reason for a parsing or validation error.

[out]

Returns

Continues on if parsing of the event was successful. Returns _returnval if a parse error occurred and sets _error appropriately.

Since: 2.0


YAML_PARSER_PARSE_WITH_EXIT_BOOL()

#define             YAML_PARSER_PARSE_WITH_EXIT_BOOL(_parser, _event, _error)

Parameters

_parser

A libyaml parser object positioned at the beginning of an event.

[inout]

_event

Returns the libyaml event that was parsed.

[out]

_error

A GError that will return the reason for a parsing or validation error.

[out]

Returns

Continues on if parsing of the event was successful. Returns FALSE if a parse error occurred and sets _error appropriately.

Since: 2.0


YAML_PARSER_PARSE_WITH_EXIT_INT()

#define             YAML_PARSER_PARSE_WITH_EXIT_INT(_parser, _event, _error)

Parameters

_parser

A libyaml parser object positioned at the beginning of an event.

[inout]

_event

Returns the libyaml event that was parsed.

[out]

_error

A GError that will return the reason for a parsing or validation error.

[out]

Returns

Continues on if parsing of the event was successful. Returns 0 if a parse error occurred and sets _error appropriately.

Since: 2.0


YAML_PARSER_PARSE_WITH_EXIT()

#define             YAML_PARSER_PARSE_WITH_EXIT(_parser, _event, _error)

Parameters

_parser

A libyaml parser object positioned at the beginning of an event.

[inout]

_event

Returns the libyaml event that was parsed.

[out]

_error

A GError that will return the reason for a parsing or validation error.

[out]

Returns

Continues on if parsing of the event was successful. Returns NULL if a parse error occurred and sets _error appropriately.

Since: 2.0


MMD_EMIT_WITH_EXIT_FULL()

#define             MMD_EMIT_WITH_EXIT_FULL(_emitter, _returnval, _event, _error, ...)

DIRECT USE OF THIS MACRO SHOULD BE AVOIDED. This is the internal implementation for MMD_EMIT_WITH_EXIT and MMD_EMIT_WITH_EXIT_PTR which should be used instead.

Parameters

_emitter

A libyaml emitter object positioned where _event belongs in the YAML document.

[inout]

_returnval

The value to return in case of an output error.

[in]

_event

The libyaml event to be emitted.

[in]

_error

A GError that will return the reason for an output error.

[out]

...

Additional argument(s) to pass to g_set_error() when setting _error in case of failure.

[in]

Returns

Continues on if emitting of the event was successful. Returns _returnval if an output error occurred and sets _error appropriately.

Since: 2.0


MMD_EMIT_WITH_EXIT()

#define             MMD_EMIT_WITH_EXIT(_emitter, _event, _error, ...)

Parameters

_emitter

A libyaml emitter object positioned where _event belongs in the YAML document.

[inout]

_event

The libyaml event to be emitted.

[in]

_error

A GError that will return the reason for an output error.

[out]

...

Additional argument(s) to pass to g_set_error() when setting _error in case of failure.

[in]

Returns

Continues on if emitting of the event was successful. Returns FALSE if an output error occurred and sets _error appropriately.

Since: 2.0


MMD_EMIT_WITH_EXIT_PTR()

#define             MMD_EMIT_WITH_EXIT_PTR(_emitter, _event, _error, ...)

Parameters

_emitter

A libyaml emitter object positioned where _event belongs in the YAML document.

[inout]

_event

The libyaml event to be emitted.

[in]

_error

A GError that will return the reason for an output error.

[out]

...

Additional argument(s) to pass to g_set_error() when setting _error in case of failure.

[in]

Returns

Continues on if emitting of the event was successful. Returns NULL if an output error occurred and sets _error appropriately.

Since: 2.0


MMD_YAML_ERROR_EVENT_EXIT_FULL()

#define             MMD_YAML_ERROR_EVENT_EXIT_FULL(                                       \
              _error, _errorcode, _event, _returnval, ...)

DIRECT USE OF THIS MACRO SHOULD BE AVOIDED. This is the internal implementation for MMD_YAML_ERROR_EVENT_EXIT, MMD_YAML_ERROR_EVENT_EXIT_BOOL, and MMD_YAML_ERROR_EVENT_EXIT_INT which should be used instead.

Parameters

_error

A GError that will return the reason for the error.

[out]

_errorcode

The exact error code that should be set on _error .

[in]

_event

The libyaml event for which an error is to be reported.

[in]

_returnval

The error value to return.

[in]

...

Additional argument(s) to pass to g_set_error() when setting _error .

[in]

Returns

Returns _returnval and sets _error appropriately.

Since: 2.0


MMD_YAML_ERROR_EVENT_EXIT()

#define             MMD_YAML_ERROR_EVENT_EXIT(_error, _event, ...)

Parameters

_error

A GError that will return the reason for the error.

[out]

_event

The libyaml event for which an error is to be reported.

[in]

...

Additional argument(s) to pass to g_set_error() when setting _error .

[in]

Returns

Returns NULL and sets _error appropriately.

Since: 2.0


MMD_YAML_ERROR_EVENT_EXIT_BOOL()

#define             MMD_YAML_ERROR_EVENT_EXIT_BOOL(_error, _event, ...)

Parameters

_error

A GError that will return the reason for the error.

[out]

_event

The libyaml event for which an error is to be reported.

[in]

...

Additional argument(s) to pass to g_set_error() when setting _error .

[in]

Returns

Returns FALSE and sets _error appropriately.

Since: 2.0


MMD_YAML_ERROR_EVENT_EXIT_INT()

#define             MMD_YAML_ERROR_EVENT_EXIT_INT(_error, _event, ...)

Parameters

_error

A GError that will return the reason for the error.

[out]

_event

The libyaml event for which an error is to be reported.

[in]

...

Additional argument(s) to pass to g_set_error() when setting _error .

[in]

Returns

Returns 0 and sets _error appropriately.

Since: 2.0


MMD_SET_PARSED_YAML_STRING()

#define             MMD_SET_PARSED_YAML_STRING(_parser, _error, _fn, _obj)

This convenience macro can be used when a YAML string (scalar) event is expected, and that string is to be stored in a property of libmodulemd object _obj via setter method _fn .

Parameters

_parser

A libyaml parser object positioned at the beginning of an expected string event.

[inout]

_error

A GError that will return the reason for a parsing or validation error.

[out]

_fn

A setter method for a property of object _obj to be called with the successfully parsed string.

[in]

_obj

The object that is to store the parsed string via its _fn setter method.

[inout]

Returns

Continues on if parsing of the event was successful. Returns NULL if a parse error occurred and sets _error appropriately.

Since: 2.0


mmd_emitter_start_stream ()

gboolean
mmd_emitter_start_stream (yaml_emitter_t *emitter,
                          GError **error);

Parameters

emitter

A libyaml emitter object that will be positioned at the beginning of a new YAML output stream.

[inout]

error

A GError that will return the reason for any error.

[out]

Returns

TRUE if the YAML stream was started successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


mmd_emitter_end_stream ()

gboolean
mmd_emitter_end_stream (yaml_emitter_t *emitter,
                        GError **error);

Parameters

emitter

A libyaml emitter object that is positioned at the end of a YAML output stream to be closed.

[inout]

error

A GError that will return the reason for any error.

[out]

Returns

TRUE if the YAML stream was closed successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


mmd_emitter_start_document ()

gboolean
mmd_emitter_start_document (yaml_emitter_t *emitter,
                            GError **error);

Emits a YAML document start header line.

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new YAML document will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

Returns

TRUE if the YAML document was started successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


mmd_emitter_end_document ()

gboolean
mmd_emitter_end_document (yaml_emitter_t *emitter,
                          GError **error);

Emits a YAML document termination line.

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a YAML document terminator will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

Returns

TRUE if the YAML document was terminated successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


mmd_emitter_start_mapping ()

gboolean
mmd_emitter_start_mapping (yaml_emitter_t *emitter,
                           yaml_mapping_style_t style,
                           GError **error);

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new mapping will be written.

[inout]

style

The YAML mapping style for the output.

[in]

error

A GError that will return the reason for any error.

[out]

Returns

TRUE if the YAML mapping was started successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


mmd_emitter_end_mapping ()

gboolean
mmd_emitter_end_mapping (yaml_emitter_t *emitter,
                         GError **error);

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a mapping ending will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

Returns

TRUE if the YAML mapping was ended successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


mmd_emitter_start_sequence ()

gboolean
mmd_emitter_start_sequence (yaml_emitter_t *emitter,
                            yaml_sequence_style_t style,
                            GError **error);

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new sequence will be written.

[inout]

style

The YAML sequence style for the output.

[in]

error

A GError that will return the reason for any error.

[out]

Returns

TRUE if the YAML sequence was started successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


mmd_emitter_end_sequence ()

gboolean
mmd_emitter_end_sequence (yaml_emitter_t *emitter,
                          GError **error);

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a sequence ending will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

Returns

TRUE if the YAML sequence was ended successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


mmd_emitter_scalar ()

gboolean
mmd_emitter_scalar (yaml_emitter_t *emitter,
                    const gchar *scalar,
                    yaml_scalar_style_t style,
                    GError **error);

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a scalar will be written.

[inout]

scalar

The scalar (string) to be written.

[in]

style

The YAML scalar style for the output.

[in]

error

A GError that will return the reason for any error.

[out]

Returns

TRUE if the YAML scalar was written successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


mmd_emitter_scalar_string ()

gboolean
mmd_emitter_scalar_string (yaml_emitter_t *emitter,
                           const gchar *scalar,
                           GError **error);

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a scalar will be written.

[inout]

scalar

The scalar string to be written. If the string looks like a number or is empty or undefined, it will be explicitly quoted.

[in][nullable]

error

A GError that will return the reason for any error.

[out]

Returns

TRUE if the YAML scalar was written successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.15


mmd_emitter_strv ()

gboolean
mmd_emitter_strv (yaml_emitter_t *emitter,
                  yaml_sequence_style_t seq_style,
                  GStrv list,
                  GError **error);

Parameters

emitter

A libyaml emitter object positioned at the start of where a string sequence will be written.

[inout]

seq_style

The YAML sequence style for the output.

[in]

list

A list that will be emitted to the YAML emitter.

[in]

error

A GError that will return the reason for an emitting error.

[out]

Returns

TRUE if the sequence emitted successfully. FALSE if an error was encountered and sets error appropriately.

Since: 2.0


modulemd_yaml_parse_date ()

GDate *
modulemd_yaml_parse_date (yaml_parser_t *parser,
                          GError **error);

Parameters

parser

A libyaml parser object positioned at the beginning of a date (YYYY-MM-DD) scalar entry.

[inout]

error

A GError that will return the reason for a parsing or validation error.

[out]

Returns

A newly-allocated GDate representing the parsed value. NULL if a parse or validation error occurred and sets error appropriately.

[transfer full]

Since: 2.0


modulemd_yaml_parse_string ()

gchar *
modulemd_yaml_parse_string (yaml_parser_t *parser,
                            GError **error);

Parameters

parser

A libyaml parser object positioned at the beginning of a string scalar entry.

[inout]

error

A GError that will return the reason for a parsing or validation error.

[out]

Returns

A newly-allocated gchar * representing the parsed value. NULL if a parse error occurred and sets error appropriately.

[transfer full]

Since: 2.0


modulemd_yaml_parse_bool ()

gboolean
modulemd_yaml_parse_bool (yaml_parser_t *parser,
                          GError **error);

Parameters

parser

A libyaml parser object positioned at the beginning of a boolean scalar entry.

[inout]

error

A GError that will return the reason for a parsing or validation error.

[out]

Returns

A boolean representing the parsed value. Returns FALSE if a parse error occurred and sets error appropriately.

Since: 2.2


modulemd_yaml_parse_int64 ()

gint64
modulemd_yaml_parse_int64 (yaml_parser_t *parser,
                           GError **error);

Parameters

parser

A libyaml parser object positioned at the beginning of a int64 scalar entry.

[inout]

error

A GError that will return the reason for a parsing or validation error.

[out]

Returns

A 64-bit signed integer representing the parsed value. Returns 0 if a parse error occurred and sets error appropriately.

[transfer full]

Since: 2.0


modulemd_yaml_parse_uint64 ()

guint64
modulemd_yaml_parse_uint64 (yaml_parser_t *parser,
                            GError **error);

Parameters

parser

A libyaml parser object positioned at the beginning of a uint64 scalar entry.

[inout]

error

A GError that will return the reason for a parsing or validation error.

[out]

Returns

A 64-bit unsigned integer representing the parsed value. Returns 0 if a parse error occurred and sets error appropriately.

[transfer full]

Since: 2.0


modulemd_yaml_parse_string_set ()

GHashTable *
modulemd_yaml_parse_string_set (yaml_parser_t *parser,
                                GError **error);

Parameters

parser

A libyaml parser object positioned at the beginning of a sequence with string scalars.

[inout]

error

A GError that will return the reason for a parsing or validation error.

[out]

Returns

A newly-allocated GHashTable * representing the parsed value. All parsed sequence entries are added as keys in the hashtable. NULL if a parse error occurred and sets error appropriately.

[transfer full]

Since: 2.0


modulemd_yaml_parse_string_set_from_map ()

GHashTable *
modulemd_yaml_parse_string_set_from_map
                               (yaml_parser_t *parser,
                                const gchar *key,
                                gboolean strict,
                                GError **error);

Function for retrieving a string set from a single-key map such as data.artifacts, data.api or data.filter from a module stream document.

Parameters

parser

A libyaml parser object positioned at the beginning of a map containing a single key which is a sequence with string scalars.

[inout]

key

The key in a single-key mapping whose contents should be returned as a string set.

[in]

strict

Whether the parser should return failure if it encounters an unknown mapping key or if it should ignore it.

[in]

error

A GError that will return the reason for a parsing or validation error.

[out]

Returns

A newly-allocated GHashTable * representing the parsed values. All parsed sequence entries are added as keys in the hashtable. NULL if a parse error occurred and sets error appropriately.

[transfer full]

Since: 2.0


modulemd_yaml_parse_string_string_map ()

GHashTable *
modulemd_yaml_parse_string_string_map (yaml_parser_t *parser,
                                       GError **error);

Function for retrieving a hash table from a str/str map such as data.dependencies in ModuleStreamV1.

Parameters

parser

A libyaml parser object positioned at the beginning of a map containing a scalar/scalar key/value pairs.

[inout]

error

A GError that will return the reason for a parsing or validation error.

[out]

Returns

A newly-allocated GHashTable * representing the parsed values. NULL if a parse error occurred and sets error appropriately.

[transfer full]

Since: 2.0


modulemd_yaml_parse_nested_set ()

GHashTable *
modulemd_yaml_parse_nested_set (yaml_parser_t *parser,
                                GError **error);

Function for retrieving a hash table from a str/string-set map such as data.dependencies in ModulemdModuleStreamV2.

Parameters

parser

A libyaml parser object positioned at the beginning of a map containing scalar keys with string set values.

[inout]

error

A GError that will return the reason for a parsing or validation error.

[out]

Returns

A newly-allocated GHashTable * representing the parsed values. NULL if a parse error occurred and sets error appropriately.

[transfer full]

Since: 2.10


modulemd_yaml_emit_nested_set ()

gboolean
modulemd_yaml_emit_nested_set (yaml_emitter_t *emitter,
                               GHashTable *table,
                               GError **error);

Parameters

emitter

A libyaml emitter object that is positioned where a nested set (a map containing scalar keys with string set values) should occur.

[inout]

table

The nested set to emit.

[in]

error

A GError that will return the reason for failing to emit.

[out]

Returns

TRUE if the nested set emitted successfully. FALSE if an error was encountered and sets error appropriately.

Since: 2.10


modulemd_yaml_parse_document_type ()

ModulemdSubdocumentInfo *
modulemd_yaml_parse_document_type (yaml_parser_t *parser);

Reads through a YAML subdocument to retrieve the document type, metadata version and the data section.

Parameters

parser

A libyaml parser object positioned at the beginning of a yaml subdocument immediately prior to a YAML_DOCUMENT_START_EVENT.

[inout]

Returns

A ModulemdSubdocumentInfo with information on the parse results.

[transfer full]

Since: 2.0


modulemd_yaml_emit_document_headers ()

gboolean
modulemd_yaml_emit_document_headers (yaml_emitter_t *emitter,
                                     ModulemdYamlDocumentTypeEnum doctype,
                                     guint64 mdversion,
                                     GError **error);

Creates the YAML header and returns emitter positioned just before the YAML_MAPPING_START for the "data:" section.

Parameters

emitter

A libyaml emitter object that is positioned where the YAML_DOCUMENT_START_EVENT should occur (so this must be after either a YAML_STREAM_START_EVENT or YAML_DOCUMENT_END_EVENT).

[inout]

doctype

The document type (see ModulemdYamlDocumentTypeEnum).

[in]

mdversion

The metadata version for this document.

[in]

error

A GError that will return the reason for failing to emit.

[out]

Returns

TRUE if the document emitted successfully. FALSE if an error was encountered and sets error appropriately.

Since: 2.0


modulemd_yaml_emit_variant ()

gboolean
modulemd_yaml_emit_variant (yaml_emitter_t *emitter,
                            GVariant *variant,
                            GError **error);

Parameters

emitter

A libyaml emitter object that is positioned where the variant should occur.

[inout]

variant

The variant to emit. It must be either a boolean, string, array or dictionary.

[in]

error

A GError that will return the reason for failing to emit.

[out]

Returns

TRUE if the variant emitted successfully. FALSE if an error was encountered and sets error appropriately.

Since: 2.0


mmd_variant_from_scalar ()

GVariant *
mmd_variant_from_scalar (const gchar *scalar);

Parameters

scalar

A string or boolean value to read into a GVariant.

[in]

Returns

A new, floating GVariant representing a string or boolean value matching the scalar passed in.

[transfer full]

Since: 2.0


mmd_variant_from_mapping ()

GVariant *
mmd_variant_from_mapping (yaml_parser_t *parser,
                          GError **error);

Parameters

parser

A YAML parser positioned just after a MAPPING_START.

[inout]

error

A GError that will return the reason for failing to parse.

[out]

Returns

A new, floating GVariant representing a hash table with string keys and GVariant values.

[transfer full]

Since: 2.0


mmd_variant_from_sequence ()

GVariant *
mmd_variant_from_sequence (yaml_parser_t *parser,
                           GError **error);

Parameters

parser

A YAML parser positioned just after a SEQUENCE_START.

[inout]

error

A GError that will return the reason for failing to parse.

[out]

Returns

A new, floating GVariant representing a list of GVariant values.

[transfer full]

Since: 2.0


mmd_parse_xmd ()

GVariant *
mmd_parse_xmd (yaml_parser_t *parser,
               GError **error);

Parameters

parser

A YAML parser positioned just after an 'xmd' mapping key.

[inout]

error

A GError that will return the reason for failing to parse.

[out]

Returns

A new, floating GVariant representing the parsed XMD (eXtensible MetaData).

[transfer full]

Since: 2.10


skip_unknown_yaml ()

gboolean
skip_unknown_yaml (yaml_parser_t *parser,
                   GError **error);

This function is used to skip a section of YAML that contains unknown keys. The intent here is that it will allow libmodulemd to be forward-compatible with new, backwards-compatible changes in the metadata format. This function will advance parser to just before the next key in the map.

Parameters

parser

A YAML parser positioned just after an unexpected map key.

[inout]

error

A GError that will return the reason for failing to parse.

[out]

Returns

TRUE if the parser was able to skip the unknown values safely. FALSE and sets error appropriately if the document was malformed YAML.


SKIP_UNKNOWN()

#define             SKIP_UNKNOWN(_parser, _returnval, ...)

This convenience macro is a wrapper around skip_unknown_yaml() used to skip a section of YAML that contains unknown keys.

NOTE: Local variables strict and error are expected to be present in the code from which this macro is used.

Parameters

_parser

A YAML parser positioned just after an unexpected map key.

[inout]

_returnval

The error value to return.

[in]

...

Additional argument(s) to pass to g_set_error() when setting error.

[in]

Returns

If strict is TRUE or skip_unknown_yaml() fails, _returnval is returned and error is set appropriately.

Since: 2.0


NON_EMPTY_TABLE()

#define NON_EMPTY_TABLE(table) (g_hash_table_size (table) != 0)

Parameters

table

A GHashTable.

 

Returns

FALSE if table is empty, otherwise TRUE.

Since: 2.0


NON_EMPTY_ARRAY()

#define NON_EMPTY_ARRAY(array) (array->len != 0)

Parameters

array

A GPtrArray.

 

Returns

FALSE if array is empty, otherwise TRUE.

Since: 2.0


EMIT_SCALAR_FULL()

#define             EMIT_SCALAR_FULL(emitter, error, value, style)

Emits scalar value using style style .

Parameters

emitter

A libyaml emitter object positioned where a scalar belongs in the YAML document.

[inout]

error

A GError that will return the reason for an output error.

[out]

value

The scalar (string) to be written.

[in]

style

The YAML scalar style for the output.

[in]

Returns

Continues on if the YAML scalar was written successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.1


EMIT_SCALAR()

#define             EMIT_SCALAR(emitter, error, value)

Emits scalar value using style YAML_PLAIN_SCALAR_STYLE.

Parameters

emitter

A libyaml emitter object positioned where a scalar belongs in the YAML document.

[inout]

error

A GError that will return the reason for an output error.

[out]

value

The scalar (string) to be written.

[in]

Returns

Continues on if the YAML scalar was written successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_SCALAR_STRING()

#define             EMIT_SCALAR_STRING(emitter, error, value)

Emits a string value . Using style YAML_DOUBLE_QUOTED_SCALAR_STYLE style if the value is empty or looks like a number. Otherwise, using YAML_PLAIN_SCALAR_STYLE style. This autoquoting of number-like strings is in place to prevent other YAML applications from trimming trailing null digits and to force them handle the values as a string (e.g. "1.0" will be serialized as "1.0" instead of 1.0 which some applications interpret as 1. We do not always quote to keep the YAML file concise and similar to previous serialization styles.

Parameters

emitter

A libyaml emitter object positioned where a scalar belongs in the YAML document.

[inout]

error

A GError that will return the reason for an output error.

[out]

value

The scalar (string) to be written.

[in]

Returns

Continues on if the YAML scalar was written successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.15


EMIT_KEY_VALUE_FULL()

#define             EMIT_KEY_VALUE_FULL(emitter, error, key, value, style)

Emits key/value pair (key : value ) using style style .

NOTE: This macro outputs both a key and a value for that key, thus it must only be used from within a YAML mapping.

Parameters

emitter

A libyaml emitter object positioned where a scalar belongs in the YAML document.

[inout]

error

A GError that will return the reason for an output error.

[out]

key

The key (string) to be written.

[in]

value

The scalar (string) to be written.

[in]

style

The YAML scalar style for the output.

[in]

Returns

Continues on if the YAML key/value pair was written successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.1


EMIT_KEY_VALUE()

#define             EMIT_KEY_VALUE(emitter, error, key, value)

Emits key/value pair (key : value ) using style YAML_PLAIN_SCALAR_STYLE.

NOTE: This macro outputs both a key and a value for that key, thus it must only be used from within a YAML mapping.

Parameters

emitter

A libyaml emitter object positioned where a scalar belongs in the YAML document.

[inout]

error

A GError that will return the reason for an output error.

[out]

key

The key (string) to be written.

[in]

value

The scalar (string) to be written.

[in]

Returns

Continues on if the YAML key/value pair was written successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_KEY_VALUE_STRING()

#define             EMIT_KEY_VALUE_STRING(emitter, error, key, value)

Emits key/value pair (key : value ) using YAML_DOUBLE_QUOTED_SCALAR_STYLE style for number-like keys/values, YAML_PLAIN_SCALAR_STYLE otherwise.

NOTE: This macro outputs both a key and a value for that key, thus it must only be used from within a YAML mapping.

Parameters

emitter

A libyaml emitter object positioned where a scalar belongs in the YAML document.

[inout]

error

A GError that will return the reason for an output error.

[out]

key

The key (string) to be written.

[in]

value

The scalar (string) to be written.

[in]

Returns

Continues on if the YAML key/value pair was written successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.15


EMIT_KEY_VALUE_IF_SET()

#define             EMIT_KEY_VALUE_IF_SET(emitter, error, key, value)

Emits key/value pair (key : value ) only if value is not NULL. The emission is performed in YAML_PLAIN_SCALAR_STYLE style.

NOTE: This macro outputs both a key and a value for that key, thus it must only be used from within a YAML mapping.

Parameters

emitter

A libyaml emitter object positioned where a scalar belongs in the YAML document.

[inout]

error

A GError that will return the reason for an output error.

[out]

key

The key (string) to be written.

[in]

value

The scalar (string) to be written.

[in]

Returns

Continues on if value is NULL or the YAML key/value pair was written successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_KEY_VALUE_STRING_IF_SET()

#define             EMIT_KEY_VALUE_STRING_IF_SET(emitter, error, key, value)

Emits key/value pair (key : value ) only if value is not NULL. The emission is performed in YAML_DOUBLE_QUOTED_SCALAR_STYLE style if the key/value looks like a number, otherwise in YAML_PLAIN_SCALAR_STYLE style.

NOTE: This macro outputs both a key and a value for that key, thus it must only be used from within a YAML mapping.

Parameters

emitter

A libyaml emitter object positioned where a scalar belongs in the YAML document.

[inout]

error

A GError that will return the reason for an output error.

[out]

key

The key (string) to be written.

[in]

value

The scalar (string) to be written.

[in]

Returns

Continues on if value is NULL or the YAML key/value pair was written successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.15


EMIT_MAPPING_START_WITH_STYLE()

#define             EMIT_MAPPING_START_WITH_STYLE(emitter, error, style)

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new mapping will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

style

The YAML mapping style for the output.

[in]

Returns

Continues on if the YAML mapping was started successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_MAPPING_START()

#define             EMIT_MAPPING_START(emitter, error)

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new mapping will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

Returns

Continues on if the YAML mapping was started successfully using style YAML_BLOCK_MAPPING_STYLE. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_MAPPING_END()

#define             EMIT_MAPPING_END(emitter, error)

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a mapping ending will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

Returns

Continues on if the YAML mapping was ended successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_SEQUENCE_START_WITH_STYLE()

#define             EMIT_SEQUENCE_START_WITH_STYLE(emitter, error, style)

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new sequence will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

style

The YAML sequence style for the output.

[in]

Returns

Continues on if the YAML sequence was started successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_SEQUENCE_START()

#define             EMIT_SEQUENCE_START(emitter, error)

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new sequence will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

Returns

Continues on if the YAML sequence was started successfully using style YAML_BLOCK_SEQUENCE_STYLE. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_SEQUENCE_END()

#define             EMIT_SEQUENCE_END(emitter, error)

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a sequence ending will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

Returns

Continues on if the YAML sequence was ended successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_HASHTABLE_VALUES_IF_NON_EMPTY()

#define             EMIT_HASHTABLE_VALUES_IF_NON_EMPTY(                                   \
              emitter, error, key, table, emitfn)

Does nothing if the hash table table is empty. Otherwise, calls emitfn to emit each of the values from table identified as key .

NOTE: This macro outputs both a key and a sub-mapping value for that key, thus it must only be used from within a YAML mapping.

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new mapping will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

key

The name to be used as the identifier for the output mapping.

[in]

table

The GHashTable that is to be output.

[in]

emitfn

A function used to emit each of the hash table values.

[in]

Returns

Continues on if the YAML mapping was output successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_HASHTABLE_KEY_VALUES_IF_NON_EMPTY()

#define             EMIT_HASHTABLE_KEY_VALUES_IF_NON_EMPTY(emitter, error, key, table)

Does nothing if the hash table table is empty. Otherwise, outputs a YAML mapping with the key/value pairs from table identified as key .

NOTE: This macro outputs both a key and a sub-mapping value for that key, thus it must only be used from within a YAML mapping.

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new mapping will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

key

The name to be used as the identifier for the output mapping.

[in]

table

The GHashTable that is to be output. Both the keys and values must be strings.

[in]

Returns

Continues on if the YAML mapping was output successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_STRING_SET()

#define             EMIT_STRING_SET(emitter, error, key, table)

Raises an error if the hash table table is empty. Otherwise, outputs a YAML sequence using style YAML_BLOCK_SEQUENCE_STYLE with the keys from table identified as key .

NOTE: This macro outputs both a key and an array value for that key, thus it must only be used from within a YAML mapping.

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new sequence will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

key

The name to be used as the identifier for the output sequence.

[in]

table

The GHashTable that is to be output. The keys are expected to be a set() of strings.

[in]

Returns

Continues on if the YAML sequence was output successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_STRING_SET_IF_NON_EMPTY()

#define             EMIT_STRING_SET_IF_NON_EMPTY(emitter, error, key, table)

Does nothing if the hash table table is empty. Otherwise, outputs a YAML sequence using style YAML_BLOCK_SEQUENCE_STYLE with the keys from table identified as key .

NOTE: This macro outputs both a key and an array value for that key, thus it must only be used from within a YAML mapping.

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new sequence will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

key

The name to be used as the identifier for the output sequence.

[in]

table

The GHashTable that is to be output. The keys are expected to be a set() of strings.

[in]

Returns

Continues on if the YAML sequence was output successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_STRING_SET_FULL()

#define             EMIT_STRING_SET_FULL(emitter, error, key, table, sequence_style)

Outputs a YAML sequence with the keys from table identified as key .

NOTE: This macro outputs both a key and an array value for that key, thus it must only be used from within a YAML mapping.

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new sequence will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

key

The name to be used as the identifier for the output sequence.

[in]

table

The GHashTable that is to be output. The keys are expected to be a set() of strings.

[in]

sequence_style

The YAML sequence style for the output.

[in]

Returns

Continues on if the YAML sequence was output successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.1


EMIT_ARRAY_VALUES()

#define             EMIT_ARRAY_VALUES(emitter, error, key, array, emitfn)

Raises an error if the array array is empty. Otherwise, calls emitfn to emit each of the values from array identified as key .

NOTE: This macro outputs both a key and an array value for that key, thus it must only be used from within a YAML mapping.

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new sequence will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

key

The name to be used as the identifier for the output sequence.

[in]

array

The GPtrArray that is to be output.

[in]

emitfn

A function used to emit each of the array values.

[in]

Returns

Continues on if the YAML sequence was output successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0


EMIT_ARRAY_VALUES_IF_NON_EMPTY()

#define             EMIT_ARRAY_VALUES_IF_NON_EMPTY(emitter, error, key, array, emitfn)

Does nothing if the array array is empty. Otherwise, calls emitfn to emit each of the values from array identified as key .

NOTE: This macro outputs both a key and an array value for that key, thus it must only be used from within a YAML mapping.

Parameters

emitter

A libyaml emitter object that is positioned at the start of where a new sequence will be written.

[inout]

error

A GError that will return the reason for any error.

[out]

key

The name to be used as the identifier for the output sequence.

[in]

array

The GPtrArray that is to be output.

[in]

emitfn

A function used to emit each of the array values.

[in]

Returns

Continues on if the YAML sequence was output successfully. Returns FALSE if an error occurred and sets error appropriately.

Since: 2.0

Types and Values

enum ModulemdYamlDocumentTypeEnum

Members

MODULEMD_YAML_DOC_UNKNOWN

Represents an unknown YAML document type.

 

MODULEMD_YAML_DOC_MODULESTREAM

Represents a modulemd (see ModulemdModuleStream) YAML document type.

 

MODULEMD_YAML_DOC_DEFAULTS

Represents a modulemd-defaults (see ModulemdDefaultsV1) YAML document type.

 

MODULEMD_YAML_DOC_TRANSLATIONS

Represents a modulemd-translations (see ModulemdTranslation) YAML document type.

 

MODULEMD_YAML_DOC_PACKAGER

Represents a modulemd-packager document. V2 is a subset of ModulemdModuleStreamV2 containing only the attributes that a package maintainer should modify. V3 (see ModulemdPackagerV3) is a new YAML document type. Since: 2.9

 

MODULEMD_YAML_DOC_OBSOLETES

Represents a modulemd-obsoletes document (see ModulemdObsoletes) YAML document type. Since: 2.10

 

Since: 2.0