All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.andyglow.jsonschema.AsValueBuilder.scala Maven / Gradle / Ivy

package com.github.andyglow.jsonschema

import json.schema.Version
import json.schema.Version._

trait AsValueBuilder[V <: Version] {

  def apply(v: V): AsValue
}

trait LowPriorityAsValueBuilder {

  implicit val pseudo: AsValueBuilder[Raw.type] = new AsValueBuilder[Raw.type] {
    override def apply(v: Raw.type): AsValue = AsRaw
  }

  implicit val draft04: AsValueBuilder[Draft04] = new AsValueBuilder[Draft04] {
    override def apply(v: Draft04): AsValue = new AsDraft04(v)
  }

  implicit val draft06: AsValueBuilder[Draft06] = new AsValueBuilder[Draft06] {
    override def apply(v: Draft06): AsValue = new AsDraft06(v)
  }

  implicit val draft07: AsValueBuilder[Draft07] = new AsValueBuilder[Draft07] {
    override def apply(v: Draft07): AsValue = new AsDraft07(v)
  }

  implicit val draft09: AsValueBuilder[Draft09] = new AsValueBuilder[Draft09] {
    override def apply(v: Draft09): AsValue = new AsDraft09(v)
  }

  implicit val draft12: AsValueBuilder[Draft12] = new AsValueBuilder[Draft12] {
    override def apply(v: Draft12): AsValue = new AsDraft12(v)
  }
}

object AsValueBuilder extends LowPriorityAsValueBuilder




© 2015 - 2025 Weber Informatics LLC | Privacy Policy