switch to a non-templated Dumper struct (#234)
switch to a non-templated Dumper struct merged-on-behalf-of: Basile-z <Basile-z@users.noreply.github.com>
This commit is contained in:
parent
8de1a45922
commit
e37c4daa7e
|
@ -14,5 +14,5 @@ void main()
|
||||||
writeln("The answer is ", root["Answer"].as!int);
|
writeln("The answer is ", root["Answer"].as!int);
|
||||||
|
|
||||||
//Dump the loaded document to output.yaml.
|
//Dump the loaded document to output.yaml.
|
||||||
dumper(File("output.yaml", "w").lockingTextWriter).dump(root);
|
dumper().dump(File("output.yaml", "w").lockingTextWriter, root);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,13 +28,13 @@ void main()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
auto dumper = dumper(File("output.yaml", "w").lockingTextWriter);
|
auto dumper = dumper();
|
||||||
|
|
||||||
auto document = Node([Color(255, 0, 0),
|
auto document = Node([Color(255, 0, 0),
|
||||||
Color(0, 255, 0),
|
Color(0, 255, 0),
|
||||||
Color(0, 0, 255)]);
|
Color(0, 0, 255)]);
|
||||||
|
|
||||||
dumper.dump(document);
|
dumper.dump(File("output.yaml", "w").lockingTextWriter, document);
|
||||||
}
|
}
|
||||||
catch(YAMLException e)
|
catch(YAMLException e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -129,7 +129,7 @@ void main(string[] args) //@safe
|
||||||
{
|
{
|
||||||
if(dump)
|
if(dump)
|
||||||
{
|
{
|
||||||
dumper(File(file ~ ".dump", "w").lockingTextWriter).dump(nodes);
|
dumper().dump(File(file ~ ".dump", "w").lockingTextWriter, nodes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void runGetBenchmark() @safe
|
void runGetBenchmark() @safe
|
||||||
|
|
|
@ -297,16 +297,16 @@ void main(string[] args)
|
||||||
//Generate and dump the nodes.
|
//Generate and dump the nodes.
|
||||||
Node[] generated = generate(configFile);
|
Node[] generated = generate(configFile);
|
||||||
|
|
||||||
auto dumper = dumper(File(args[1], "w").lockingTextWriter);
|
auto dumper = dumper();
|
||||||
auto encoding = config["encoding"];
|
auto encoding = config["encoding"];
|
||||||
|
|
||||||
dumper.indent = config["indent"].as!uint;
|
dumper.indent = config["indent"].as!uint;
|
||||||
dumper.textWidth = config["text-width"].as!uint;
|
dumper.textWidth = config["text-width"].as!uint;
|
||||||
switch(encoding.as!string)
|
switch(encoding.as!string)
|
||||||
{
|
{
|
||||||
case "utf-16": dumper.dump!wchar(generated); break;
|
case "utf-16": dumper.dump!wchar(File(args[1], "w").lockingTextWriter, generated); break;
|
||||||
case "utf-32": dumper.dump!dchar(generated); break;
|
case "utf-32": dumper.dump!dchar(File(args[1], "w").lockingTextWriter, generated); break;
|
||||||
default: dumper.dump!char(generated); break;
|
default: dumper.dump!char(File(args[1], "w").lockingTextWriter, generated); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(YAMLException e)
|
catch(YAMLException e)
|
||||||
|
|
|
@ -35,21 +35,19 @@ import dyaml.tagdirective;
|
||||||
*
|
*
|
||||||
* Setters are provided to affect output details (style, etc.).
|
* Setters are provided to affect output details (style, etc.).
|
||||||
*/
|
*/
|
||||||
auto dumper(Range)(auto ref Range output)
|
auto dumper()
|
||||||
if (isOutputRange!(Range, char) || isOutputRange!(Range, wchar) || isOutputRange!(Range, dchar))
|
|
||||||
{
|
{
|
||||||
return Dumper!Range(output);
|
auto dumper = Dumper();
|
||||||
|
dumper.resolver_ = Resolver.withDefaultResolvers;
|
||||||
|
return dumper;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Dumper(Range)
|
struct Dumper
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
//Resolver to resolve tags.
|
//Resolver to resolve tags.
|
||||||
Resolver resolver_;
|
Resolver resolver_;
|
||||||
|
|
||||||
//Stream to write to.
|
|
||||||
Range stream_;
|
|
||||||
|
|
||||||
//Write scalars in canonical form?
|
//Write scalars in canonical form?
|
||||||
bool canonical_;
|
bool canonical_;
|
||||||
//Indentation width.
|
//Indentation width.
|
||||||
|
@ -88,20 +86,8 @@ struct Dumper(Range)
|
||||||
{
|
{
|
||||||
defaultCollectionStyle_ = style;
|
defaultCollectionStyle_ = style;
|
||||||
}
|
}
|
||||||
@disable this();
|
@disable bool opEquals(ref Dumper);
|
||||||
@disable bool opEquals(ref Dumper!Range);
|
@disable int opCmp(ref Dumper);
|
||||||
@disable int opCmp(ref Dumper!Range);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Construct a Dumper writing to a file.
|
|
||||||
*
|
|
||||||
* Params: filename = File name to write to.
|
|
||||||
*/
|
|
||||||
this(Range stream) @safe
|
|
||||||
{
|
|
||||||
resolver_ = Resolver.withDefaultResolvers;
|
|
||||||
stream_ = stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
///Set stream _name. Used in debugging messages.
|
///Set stream _name. Used in debugging messages.
|
||||||
@property void name(string name) pure @safe nothrow
|
@property void name(string name) pure @safe nothrow
|
||||||
|
@ -197,13 +183,13 @@ struct Dumper(Range)
|
||||||
///
|
///
|
||||||
@safe unittest
|
@safe unittest
|
||||||
{
|
{
|
||||||
auto dumper = dumper(new Appender!string());
|
auto dumper = dumper();
|
||||||
string[string] directives;
|
string[string] directives;
|
||||||
directives["!short!"] = "tag:long.org,2011:";
|
directives["!short!"] = "tag:long.org,2011:";
|
||||||
//This will emit tags starting with "tag:long.org,2011"
|
//This will emit tags starting with "tag:long.org,2011"
|
||||||
//with a "!short!" prefix instead.
|
//with a "!short!" prefix instead.
|
||||||
dumper.tagDirectives(directives);
|
dumper.tagDirectives(directives);
|
||||||
dumper.dump(Node("foo"));
|
dumper.dump(new Appender!string(), Node("foo"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -218,12 +204,13 @@ struct Dumper(Range)
|
||||||
* Throws: YAMLException on error (e.g. invalid nodes,
|
* Throws: YAMLException on error (e.g. invalid nodes,
|
||||||
* unable to write to file/stream).
|
* unable to write to file/stream).
|
||||||
*/
|
*/
|
||||||
void dump(CharacterType = char)(Node[] documents ...) @trusted
|
void dump(CharacterType = char, Range)(Range range, Node[] documents ...) @trusted
|
||||||
if (isOutputRange!(Range, CharacterType))
|
if (isOutputRange!(Range, CharacterType) &&
|
||||||
|
isOutputRange!(Range, char) || isOutputRange!(Range, wchar) || isOutputRange!(Range, dchar))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
auto emitter = new Emitter!(Range, CharacterType)(stream_, canonical_, indent_, textWidth_, lineBreak_);
|
auto emitter = new Emitter!(Range, CharacterType)(range, canonical_, indent_, textWidth_, lineBreak_);
|
||||||
auto serializer = Serializer!(Range, CharacterType)(emitter, resolver_, explicitStart_,
|
auto serializer = Serializer!(Range, CharacterType)(emitter, resolver_, explicitStart_,
|
||||||
explicitEnd_, YAMLVersion_, tags_);
|
explicitEnd_, YAMLVersion_, tags_);
|
||||||
foreach(ref document; documents)
|
foreach(ref document; documents)
|
||||||
|
@ -247,12 +234,13 @@ struct Dumper(Range)
|
||||||
*
|
*
|
||||||
* Throws: YAMLException if unable to emit.
|
* Throws: YAMLException if unable to emit.
|
||||||
*/
|
*/
|
||||||
void emit(CharacterType = char, T)(T events) @safe
|
void emit(CharacterType = char, Range, T)(Range range, T events) @safe
|
||||||
if (isInputRange!T && is(ElementType!T == Event))
|
if (isInputRange!T && is(ElementType!T == Event) &&
|
||||||
|
isOutputRange!(Range, char) || isOutputRange!(Range, wchar) || isOutputRange!(Range, dchar))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
auto emitter = Emitter!(Range, CharacterType)(stream_, canonical_, indent_, textWidth_, lineBreak_);
|
auto emitter = Emitter!(Range, CharacterType)(range, canonical_, indent_, textWidth_, lineBreak_);
|
||||||
foreach(ref event; events)
|
foreach(ref event; events)
|
||||||
{
|
{
|
||||||
emitter.emit(event);
|
emitter.emit(event);
|
||||||
|
@ -269,63 +257,63 @@ struct Dumper(Range)
|
||||||
@safe unittest
|
@safe unittest
|
||||||
{
|
{
|
||||||
auto node = Node([1, 2, 3, 4, 5]);
|
auto node = Node([1, 2, 3, 4, 5]);
|
||||||
dumper(new Appender!string()).dump(node);
|
dumper().dump(new Appender!string(), node);
|
||||||
}
|
}
|
||||||
///Write multiple YAML documents to a file
|
///Write multiple YAML documents to a file
|
||||||
@safe unittest
|
@safe unittest
|
||||||
{
|
{
|
||||||
auto node1 = Node([1, 2, 3, 4, 5]);
|
auto node1 = Node([1, 2, 3, 4, 5]);
|
||||||
auto node2 = Node("This document contains only one string");
|
auto node2 = Node("This document contains only one string");
|
||||||
dumper(new Appender!string()).dump(node1, node2);
|
dumper().dump(new Appender!string(), node1, node2);
|
||||||
//Or with an array:
|
//Or with an array:
|
||||||
dumper(new Appender!string()).dump([node1, node2]);
|
dumper().dump(new Appender!string(), [node1, node2]);
|
||||||
}
|
}
|
||||||
///Write to memory
|
///Write to memory
|
||||||
@safe unittest
|
@safe unittest
|
||||||
{
|
{
|
||||||
auto stream = new Appender!string();
|
auto stream = new Appender!string();
|
||||||
auto node = Node([1, 2, 3, 4, 5]);
|
auto node = Node([1, 2, 3, 4, 5]);
|
||||||
dumper(stream).dump(node);
|
dumper().dump(stream, node);
|
||||||
}
|
}
|
||||||
///Use a custom resolver to support custom data types and/or implicit tags
|
///Use a custom resolver to support custom data types and/or implicit tags
|
||||||
@safe unittest
|
@safe unittest
|
||||||
{
|
{
|
||||||
import std.regex : regex;
|
import std.regex : regex;
|
||||||
auto node = Node([1, 2, 3, 4, 5]);
|
auto node = Node([1, 2, 3, 4, 5]);
|
||||||
auto dumper = dumper(new Appender!string());
|
auto dumper = dumper();
|
||||||
dumper.resolver.addImplicitResolver("!tag", regex("A.*"), "A");
|
dumper.resolver.addImplicitResolver("!tag", regex("A.*"), "A");
|
||||||
dumper.dump(node);
|
dumper.dump(new Appender!string(), node);
|
||||||
}
|
}
|
||||||
/// Set default scalar style
|
/// Set default scalar style
|
||||||
@safe unittest
|
@safe unittest
|
||||||
{
|
{
|
||||||
auto stream = new Appender!string();
|
auto stream = new Appender!string();
|
||||||
auto node = Node("Hello world!");
|
auto node = Node("Hello world!");
|
||||||
auto dumper = dumper(stream);
|
auto dumper = dumper();
|
||||||
dumper.defaultScalarStyle = ScalarStyle.singleQuoted;
|
dumper.defaultScalarStyle = ScalarStyle.singleQuoted;
|
||||||
dumper.dump(node);
|
dumper.dump(stream, node);
|
||||||
}
|
}
|
||||||
/// Set default collection style
|
/// Set default collection style
|
||||||
@safe unittest
|
@safe unittest
|
||||||
{
|
{
|
||||||
auto stream = new Appender!string();
|
auto stream = new Appender!string();
|
||||||
auto node = Node(["Hello", "world!"]);
|
auto node = Node(["Hello", "world!"]);
|
||||||
auto dumper = dumper(stream);
|
auto dumper = dumper();
|
||||||
dumper.defaultCollectionStyle = CollectionStyle.flow;
|
dumper.defaultCollectionStyle = CollectionStyle.flow;
|
||||||
dumper.dump(node);
|
dumper.dump(stream, node);
|
||||||
}
|
}
|
||||||
// Make sure the styles are actually used
|
// Make sure the styles are actually used
|
||||||
@safe unittest
|
@safe unittest
|
||||||
{
|
{
|
||||||
auto stream = new Appender!string();
|
auto stream = new Appender!string();
|
||||||
auto node = Node([Node("Hello world!"), Node(["Hello", "world!"])]);
|
auto node = Node([Node("Hello world!"), Node(["Hello", "world!"])]);
|
||||||
auto dumper = dumper(stream);
|
auto dumper = dumper();
|
||||||
dumper.defaultScalarStyle = ScalarStyle.singleQuoted;
|
dumper.defaultScalarStyle = ScalarStyle.singleQuoted;
|
||||||
dumper.defaultCollectionStyle = CollectionStyle.flow;
|
dumper.defaultCollectionStyle = CollectionStyle.flow;
|
||||||
dumper.explicitEnd = false;
|
dumper.explicitEnd = false;
|
||||||
dumper.explicitStart = false;
|
dumper.explicitStart = false;
|
||||||
dumper.YAMLVersion = null;
|
dumper.YAMLVersion = null;
|
||||||
dumper.dump(node);
|
dumper.dump(stream, node);
|
||||||
assert(stream.data == "[!!str 'Hello world!', [!!str 'Hello', !!str 'world!']]\n");
|
assert(stream.data == "[!!str 'Hello world!', [!!str 'Hello', !!str 'world!']]\n");
|
||||||
}
|
}
|
||||||
// Explicit document start/end markers
|
// Explicit document start/end markers
|
||||||
|
@ -333,11 +321,11 @@ struct Dumper(Range)
|
||||||
{
|
{
|
||||||
auto stream = new Appender!string();
|
auto stream = new Appender!string();
|
||||||
auto node = Node([1, 2, 3, 4, 5]);
|
auto node = Node([1, 2, 3, 4, 5]);
|
||||||
auto dumper = dumper(stream);
|
auto dumper = dumper();
|
||||||
dumper.explicitEnd = true;
|
dumper.explicitEnd = true;
|
||||||
dumper.explicitStart = true;
|
dumper.explicitStart = true;
|
||||||
dumper.YAMLVersion = null;
|
dumper.YAMLVersion = null;
|
||||||
dumper.dump(node);
|
dumper.dump(stream, node);
|
||||||
//Skip version string
|
//Skip version string
|
||||||
assert(stream.data[0..3] == "---");
|
assert(stream.data[0..3] == "---");
|
||||||
//account for newline at end
|
//account for newline at end
|
||||||
|
@ -348,11 +336,11 @@ struct Dumper(Range)
|
||||||
{
|
{
|
||||||
auto stream = new Appender!string();
|
auto stream = new Appender!string();
|
||||||
auto node = Node([1, 2, 3, 4, 5]);
|
auto node = Node([1, 2, 3, 4, 5]);
|
||||||
auto dumper = dumper(stream);
|
auto dumper = dumper();
|
||||||
dumper.explicitEnd = false;
|
dumper.explicitEnd = false;
|
||||||
dumper.explicitStart = false;
|
dumper.explicitStart = false;
|
||||||
dumper.YAMLVersion = null;
|
dumper.YAMLVersion = null;
|
||||||
dumper.dump(node);
|
dumper.dump(stream, node);
|
||||||
//Skip version string
|
//Skip version string
|
||||||
assert(stream.data[0..3] != "---");
|
assert(stream.data[0..3] != "---");
|
||||||
//account for newline at end
|
//account for newline at end
|
||||||
|
@ -364,22 +352,22 @@ struct Dumper(Range)
|
||||||
auto node = Node(0);
|
auto node = Node(0);
|
||||||
{
|
{
|
||||||
auto stream = new Appender!string();
|
auto stream = new Appender!string();
|
||||||
auto dumper = dumper(stream);
|
auto dumper = dumper();
|
||||||
dumper.explicitEnd = true;
|
dumper.explicitEnd = true;
|
||||||
dumper.explicitStart = true;
|
dumper.explicitStart = true;
|
||||||
dumper.YAMLVersion = null;
|
dumper.YAMLVersion = null;
|
||||||
dumper.lineBreak = LineBreak.windows;
|
dumper.lineBreak = LineBreak.windows;
|
||||||
dumper.dump(node);
|
dumper.dump(stream, node);
|
||||||
assert(stream.data == "--- 0\r\n...\r\n");
|
assert(stream.data == "--- 0\r\n...\r\n");
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
auto stream = new Appender!string();
|
auto stream = new Appender!string();
|
||||||
auto dumper = dumper(stream);
|
auto dumper = dumper();
|
||||||
dumper.explicitEnd = true;
|
dumper.explicitEnd = true;
|
||||||
dumper.explicitStart = true;
|
dumper.explicitStart = true;
|
||||||
dumper.YAMLVersion = null;
|
dumper.YAMLVersion = null;
|
||||||
dumper.lineBreak = LineBreak.macintosh;
|
dumper.lineBreak = LineBreak.macintosh;
|
||||||
dumper.dump(node);
|
dumper.dump(stream, node);
|
||||||
assert(stream.data == "--- 0\r...\r");
|
assert(stream.data == "--- 0\r...\r");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -630,7 +630,7 @@ struct Node
|
||||||
auto appender = new Appender!string;
|
auto appender = new Appender!string;
|
||||||
|
|
||||||
// Dump struct to yaml document
|
// Dump struct to yaml document
|
||||||
dumper(appender).dump(Node(MyStruct(1,2,3)));
|
dumper().dump(appender, Node(MyStruct(1,2,3)));
|
||||||
|
|
||||||
// Read yaml document back as a MyStruct
|
// Read yaml document back as a MyStruct
|
||||||
auto loader = Loader.fromString(appender.data);
|
auto loader = Loader.fromString(appender.data);
|
||||||
|
@ -669,7 +669,7 @@ struct Node
|
||||||
auto appender = new Appender!string;
|
auto appender = new Appender!string;
|
||||||
|
|
||||||
// Dump struct to yaml document
|
// Dump struct to yaml document
|
||||||
dumper(appender).dump(Node(MyStruct(1,2,3)));
|
dumper().dump(appender, Node(MyStruct(1,2,3)));
|
||||||
|
|
||||||
// Read yaml document back as a MyStruct
|
// Read yaml document back as a MyStruct
|
||||||
auto loader = Loader.fromString(appender.data);
|
auto loader = Loader.fromString(appender.data);
|
||||||
|
@ -711,7 +711,7 @@ struct Node
|
||||||
auto appender = new Appender!string;
|
auto appender = new Appender!string;
|
||||||
|
|
||||||
// Dump struct to yaml document
|
// Dump struct to yaml document
|
||||||
dumper(appender).dump(Node(MyStruct(1,2,3)));
|
dumper().dump(appender, Node(MyStruct(1,2,3)));
|
||||||
|
|
||||||
// Read yaml document back as a MyStruct
|
// Read yaml document back as a MyStruct
|
||||||
auto loader = Loader.fromString(appender.data);
|
auto loader = Loader.fromString(appender.data);
|
||||||
|
@ -767,7 +767,7 @@ struct Node
|
||||||
auto appender = new Appender!string;
|
auto appender = new Appender!string;
|
||||||
|
|
||||||
// Dump class to yaml document
|
// Dump class to yaml document
|
||||||
dumper(appender).dump(Node(new MyClass(1,2,3)));
|
dumper().dump(appender, Node(new MyClass(1,2,3)));
|
||||||
|
|
||||||
// Read yaml document back as a MyClass
|
// Read yaml document back as a MyClass
|
||||||
auto loader = Loader.fromString(appender.data);
|
auto loader = Loader.fromString(appender.data);
|
||||||
|
@ -2209,8 +2209,8 @@ struct Node
|
||||||
auto node = Node([1, 2, 3, 4, 5]);
|
auto node = Node([1, 2, 3, 4, 5]);
|
||||||
node.setStyle(CollectionStyle.block);
|
node.setStyle(CollectionStyle.block);
|
||||||
|
|
||||||
auto dumper = dumper(stream);
|
auto dumper = dumper();
|
||||||
dumper.dump(node);
|
dumper.dump(stream, node);
|
||||||
}
|
}
|
||||||
///
|
///
|
||||||
@safe unittest
|
@safe unittest
|
||||||
|
@ -2220,8 +2220,8 @@ struct Node
|
||||||
auto node = Node(4);
|
auto node = Node(4);
|
||||||
node.setStyle(ScalarStyle.literal);
|
node.setStyle(ScalarStyle.literal);
|
||||||
|
|
||||||
auto dumper = dumper(stream);
|
auto dumper = dumper();
|
||||||
dumper.dump(node);
|
dumper.dump(stream, node);
|
||||||
}
|
}
|
||||||
@safe unittest
|
@safe unittest
|
||||||
{
|
{
|
||||||
|
@ -2235,11 +2235,11 @@ struct Node
|
||||||
auto stream = new Appender!string();
|
auto stream = new Appender!string();
|
||||||
auto node = Node([1, 2, 3, 4, 5]);
|
auto node = Node([1, 2, 3, 4, 5]);
|
||||||
node.setStyle(CollectionStyle.block);
|
node.setStyle(CollectionStyle.block);
|
||||||
auto dumper = dumper(stream);
|
auto dumper = dumper();
|
||||||
dumper.explicitEnd = false;
|
dumper.explicitEnd = false;
|
||||||
dumper.explicitStart = false;
|
dumper.explicitStart = false;
|
||||||
dumper.YAMLVersion = null;
|
dumper.YAMLVersion = null;
|
||||||
dumper.dump(node);
|
dumper.dump(stream, node);
|
||||||
|
|
||||||
//Block style should start with a hyphen.
|
//Block style should start with a hyphen.
|
||||||
assert(stream.data[0] == '-');
|
assert(stream.data[0] == '-');
|
||||||
|
@ -2248,11 +2248,11 @@ struct Node
|
||||||
auto stream = new Appender!string();
|
auto stream = new Appender!string();
|
||||||
auto node = Node([1, 2, 3, 4, 5]);
|
auto node = Node([1, 2, 3, 4, 5]);
|
||||||
node.setStyle(CollectionStyle.flow);
|
node.setStyle(CollectionStyle.flow);
|
||||||
auto dumper = dumper(stream);
|
auto dumper = dumper();
|
||||||
dumper.explicitEnd = false;
|
dumper.explicitEnd = false;
|
||||||
dumper.explicitStart = false;
|
dumper.explicitStart = false;
|
||||||
dumper.YAMLVersion = null;
|
dumper.YAMLVersion = null;
|
||||||
dumper.dump(node);
|
dumper.dump(stream, node);
|
||||||
|
|
||||||
//Flow style should start with a bracket.
|
//Flow style should start with a bracket.
|
||||||
assert(stream.data[0] == '[');
|
assert(stream.data[0] == '[');
|
||||||
|
@ -2261,11 +2261,11 @@ struct Node
|
||||||
auto stream = new Appender!string();
|
auto stream = new Appender!string();
|
||||||
auto node = Node(1);
|
auto node = Node(1);
|
||||||
node.setStyle(ScalarStyle.singleQuoted);
|
node.setStyle(ScalarStyle.singleQuoted);
|
||||||
auto dumper = dumper(stream);
|
auto dumper = dumper();
|
||||||
dumper.explicitEnd = false;
|
dumper.explicitEnd = false;
|
||||||
dumper.explicitStart = false;
|
dumper.explicitStart = false;
|
||||||
dumper.YAMLVersion = null;
|
dumper.YAMLVersion = null;
|
||||||
dumper.dump(node);
|
dumper.dump(stream, node);
|
||||||
|
|
||||||
assert(stream.data == "!!int '1'\n");
|
assert(stream.data == "!!int '1'\n");
|
||||||
}
|
}
|
||||||
|
@ -2273,11 +2273,11 @@ struct Node
|
||||||
auto stream = new Appender!string();
|
auto stream = new Appender!string();
|
||||||
auto node = Node(1);
|
auto node = Node(1);
|
||||||
node.setStyle(ScalarStyle.doubleQuoted);
|
node.setStyle(ScalarStyle.doubleQuoted);
|
||||||
auto dumper = dumper(stream);
|
auto dumper = dumper();
|
||||||
dumper.explicitEnd = false;
|
dumper.explicitEnd = false;
|
||||||
dumper.explicitStart = false;
|
dumper.explicitStart = false;
|
||||||
dumper.YAMLVersion = null;
|
dumper.YAMLVersion = null;
|
||||||
dumper.dump(node);
|
dumper.dump(stream, node);
|
||||||
|
|
||||||
assert(stream.data == "!!int \"1\"\n");
|
assert(stream.data == "!!int \"1\"\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,7 +79,7 @@ void testEmitterOnData(string dataFilename, string canonicalFilename) @safe
|
||||||
auto loader = Loader.fromFile(dataFilename);
|
auto loader = Loader.fromFile(dataFilename);
|
||||||
auto events = loader.parse();
|
auto events = loader.parse();
|
||||||
auto emitStream = new Appender!string;
|
auto emitStream = new Appender!string;
|
||||||
dumper(emitStream).emit(events);
|
dumper().emit(emitStream, events);
|
||||||
|
|
||||||
static if(verbose)
|
static if(verbose)
|
||||||
{
|
{
|
||||||
|
@ -107,9 +107,9 @@ void testEmitterOnCanonical(string canonicalFilename) @safe
|
||||||
foreach(canonical; [false, true])
|
foreach(canonical; [false, true])
|
||||||
{
|
{
|
||||||
auto emitStream = new Appender!string;
|
auto emitStream = new Appender!string;
|
||||||
auto dumper = dumper(emitStream);
|
auto dumper = dumper();
|
||||||
dumper.canonical = canonical;
|
dumper.canonical = canonical;
|
||||||
dumper.emit(events);
|
dumper.emit(emitStream, events);
|
||||||
static if(verbose)
|
static if(verbose)
|
||||||
{
|
{
|
||||||
writeln("OUTPUT (canonical=", canonical, "):\n",
|
writeln("OUTPUT (canonical=", canonical, "):\n",
|
||||||
|
@ -164,7 +164,7 @@ void testEmitterStyles(string dataFilename, string canonicalFilename) @safe
|
||||||
styledEvents ~= event;
|
styledEvents ~= event;
|
||||||
}
|
}
|
||||||
auto emitStream = new Appender!string;
|
auto emitStream = new Appender!string;
|
||||||
dumper(emitStream).emit(styledEvents);
|
dumper().emit(emitStream, styledEvents);
|
||||||
static if(verbose)
|
static if(verbose)
|
||||||
{
|
{
|
||||||
writeln("OUTPUT (", filename, ", ", to!string(flowStyle), ", ",
|
writeln("OUTPUT (", filename, ", ", to!string(flowStyle), ", ",
|
||||||
|
|
|
@ -53,8 +53,8 @@ void testRepresenterTypes(string codeFilename) @safe
|
||||||
}
|
}
|
||||||
|
|
||||||
auto emitStream = new Appender!(immutable(encoding)[]);
|
auto emitStream = new Appender!(immutable(encoding)[]);
|
||||||
auto dumper = dumper(emitStream);
|
auto dumper = dumper();
|
||||||
dumper.dump!encoding(expectedNodes);
|
dumper.dump!encoding(emitStream, expectedNodes);
|
||||||
|
|
||||||
output = emitStream.data;
|
output = emitStream.data;
|
||||||
|
|
||||||
|
|
|
@ -263,7 +263,7 @@ TestResult runTests(string tml) @safe
|
||||||
if (!loadFailed && !compareYAMLString.isNull && !shouldFail)
|
if (!loadFailed && !compareYAMLString.isNull && !shouldFail)
|
||||||
{
|
{
|
||||||
Appender!string buf;
|
Appender!string buf;
|
||||||
dumper(buf).dump();
|
dumper().dump(buf);
|
||||||
compareLineByLine(buf.data, compareYAMLString, "Dumped YAML mismatch");
|
compareLineByLine(buf.data, compareYAMLString, "Dumped YAML mismatch");
|
||||||
testsRun++;
|
testsRun++;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue