dyaml.loader

Class used to load YAML documents.

struct Loader;

Loads YAML documents from files or streams.

User specified Constructor and/or Resolver can be used to support new tags / data types.

Examples:
Load single YAML document from a file:
 auto rootNode = Loader("file.yaml").load();
 ...
Load all YAML documents from a file:
 auto nodes = Loader("file.yaml").loadAll();
 ...
Iterate over YAML documents in a file, lazily loading them:
 auto loader = Loader("file.yaml");

 foreach(ref node; loader)
 {
     ...
 }
Load YAML from memory:
 import std.stream;
 import std.stdio;

 string yaml_input = "red:   '#ff0000'\n"
                     "green: '#00ff00'\n"
                     "blue:  '#0000ff'";

 auto colors = Loader(new MemoryStream(cast(char[])yaml_input)).load();

 foreach(string color, string value; colors)
 {
     writeln(color, " is ", value, " in HTML/CSS");
 }
Use a custom constructor/resolver to support custom data types and/or implicit tags:
 auto constructor = new Constructor();
 auto resolver = new Resolver();

 //Add constructor functions / resolver expressions here...

 auto loader = Loader("file.yaml");
 loader.constructor = constructor;
 loader.resolver = resolver;
 auto rootNode = loader.load(node);
this(in string filename);

Construct a Loader to load YAML from a file.

Parameters:
string filename Name of the file to load from.
Throws:
YAMLException if the file could not be opened or read.
this(Stream stream);

Construct a Loader to load YAML from a stream.

Parameters:
Stream stream Stream to read from. Must be readable.
Throws:
YAMLException if stream could not be read.
@property void name(string name);

Set stream name. Used in debugging messages.

@property void resolver(Resolver resolver);

Specify custom Resolver to use.

@property void constructor(Constructor constructor);

Specify custom Constructor to use.

Node load();

Load single YAML document.

If none or more than one YAML document is found, this throws a YAMLException.

Returns:
Root node of the document.
Throws:
YAMLException if there wasn't exactly one document or on a YAML parsing error.
Node[] loadAll();

Load all YAML documents.

Returns:
Array of root nodes of all documents in the file/stream.
Throws:
YAMLException on a parsing error.
int opApply(int delegate(ref Node) dg);

Foreach over YAML documents.

Parses documents lazily, when they are needed.

Throws:
YAMLException on a parsing error.