Resolver.addImplicitResolver

Add an implicit scalar resolver.

If a scalar matches regexp and starts with any character in first, its _tag is set to tag. If it matches more than one resolver _regexp resolvers added _first override ones added later. Default resolvers override any user specified resolvers, but they can be disabled in Resolver constructor.

If a scalar is not resolved to anything, it is assigned the default YAML _tag for strings.

struct Resolver
pure @safe
void
addImplicitResolver
(
string tag
,
const Regex!char regexp
,
string first
)

Parameters

regexp Regex!char

Regular expression the scalar must match to have this _tag.

first string

String of possible starting characters of the scalar.

Examples

Resolve scalars starting with 'A' to !_tag

import std.file : write;
import std.regex : regex;
import dyaml.loader : Loader;
import dyaml.resolver : Resolver;

write("example.yaml", "A");

auto loader = Loader.fromFile("example.yaml");
loader.resolver.addImplicitResolver("!tag", regex("A.*"), "A");

auto node = loader.load();
assert(node.tag == "!tag");

Meta