aboutsummaryrefslogtreecommitdiff
path: root/yamlesque/src/main/scala/yamlValues.scala
diff options
context:
space:
mode:
Diffstat (limited to 'yamlesque/src/main/scala/yamlValues.scala')
-rw-r--r--yamlesque/src/main/scala/yamlValues.scala23
1 files changed, 23 insertions, 0 deletions
diff --git a/yamlesque/src/main/scala/yamlValues.scala b/yamlesque/src/main/scala/yamlValues.scala
new file mode 100644
index 0000000..3bc4f36
--- /dev/null
+++ b/yamlesque/src/main/scala/yamlValues.scala
@@ -0,0 +1,23 @@
+package yamlesque
+
+sealed trait YamlValue {
+ def print: String = YamlValue.DefaultPrinter(this)
+}
+object YamlValue {
+ val DefaultPrinter = new YamlPrinter(true)
+}
+
+case class YamlMapping(fields: Map[String, YamlValue]) extends YamlValue
+object YamlMapping {
+ def apply(items: (String, YamlValue)*) = new YamlMapping(Map(items: _*))
+}
+
+case class YamlSequence(items: Vector[YamlValue]) extends YamlValue
+object YamlSequence {
+ def apply(items: YamlValue*) = new YamlSequence(items.toVector)
+}
+
+case class YamlScalar(value: String) extends YamlValue
+object YamlScalar {
+ final val Empty = YamlScalar("")
+}