blob: 4df72e13ecc08d91930c24c24913e602bac2223a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package io.crashbox.ci
package yaml
trait CompositeReaders {
implicit def mapReader[V: YamlReader] = new YamlReader[Map[String, V]] {
override def read(yml: YamlValue) = yml match {
case YamlMap(m) =>
m.map {
case (key, value) =>
key -> value.convertTo[V]
}
case YamlString.Empty => Map.empty[String, V]
case _ => formatError(yml, "mapping")
}
}
implicit def seqReader[A: YamlReader] = new YamlReader[Seq[A]] {
override def read(yml: YamlValue) = yml match {
case YamlSeq(elements) =>
elements.map { v =>
v.convertTo[A]
}
case YamlString.Empty => Seq.empty[A]
case _ => formatError(yml, "sequence")
}
}
}
|