Dom

object Dom

Simple Document Object Model (DOM) for CBOR.

Practically all valid CBOR encodings can be decoded into this structure and vice versa. Provided as an alternative to plain Writer-based encoding and Reader-based decoding.

class Object
trait Matchable
class Any
Dom.type

Type members

Classlikes

sealed abstract class AbstractBytesElem(dataItem: Int) extends Element
sealed abstract class AbstractTextElem(dataItem: Int) extends Element
sealed abstract class ArrayElem(dataItem: Int) extends Element
Companion:
object
object ArrayElem
Companion:
class
final case class BooleanElem(value: Boolean) extends Element
Companion:
object
Companion:
class
final case class ByteArrayElem(bytes: Array[Byte]) extends AbstractBytesElem
final case class BytesStreamElem(elems: Vector[AbstractBytesElem]) extends AbstractBytesElem
final case class DoubleElem(value: Double) extends Element
sealed abstract class Element(val dataItemShift: Int)
final case class Float16Elem(value: Float) extends Element
final case class FloatElem(value: Float) extends Element
final case class IntElem(value: Int) extends Element
final case class LongElem(value: Long) extends Element
sealed abstract class MapElem(val elems: Array[Element], dataItem: Int) extends Element
Companion:
object
object MapElem
Companion:
class
case object NullElem extends Element
final case class NumberStringElem(value: String) extends Element
final case class OverLongElem(negative: Boolean, value: Long) extends Element
final case class SimpleValueElem(value: SimpleValue) extends Element
final case class StringElem(value: String) extends AbstractTextElem
final case class TaggedElem(tag: Tag, value: Element) extends Element
final case class TextStreamElem(elems: Vector[AbstractTextElem]) extends AbstractTextElem
Companion:
class
trait Transformer extends Element => Element

A Dom.Transformer encapsulates the ability for arbitrary DOM transformations. The default implementation applies a NOP transformation, i.e. returns an identical DOM structure.

A Dom.Transformer encapsulates the ability for arbitrary DOM transformations. The default implementation applies a NOP transformation, i.e. returns an identical DOM structure.

Override some or all methods to customize the transformation logic.

Companion:
object
case object UndefinedElem extends Element

Value members

Implicits

Implicits

implicit def decoder[T <: Element]: Decoder[T]
implicit def encoder[T <: Element]: Encoder[T]