case class ScalarType[T](name: String, description: Option[String] = None, coerceUserInput: (Any) => Either[Violation, T], coerceOutput: (T, Set[MarshallerCapability]) => Any, coerceInput: (ast.Value) => Either[Violation, T], complexity: Double = 0.0d, scalarInfo: Set[ScalarValueInfo] = Set.empty, astDirectives: Vector[ast.Directive] = Vector.empty, astNodes: Vector[AstNode] = Vector.empty) extends InputType[@@[T, CoercedScalaResult]] with OutputType[T] with LeafType with NullableType with UnmodifiedType with Named with Product with Serializable
Defines a GraphQL scalar value type.
coerceOutput
is allowed to return following scala values:
- String
- Boolean
- Int
- Long
- Float
- Double
- scala.BigInt
- scala.BigDecimal
- sangria.ast.Value (it would be converted to raw scala value before given to a marshalling API)
It may also return other values as well as long as underlying marshalling library supports them.
You can provide additional meta-information to marshalling API with scalarInfo
.
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- ScalarType
- Serializable
- Product
- Equals
- UnmodifiedType
- NullableType
- LeafType
- HasAstInfo
- Named
- HasDescription
- OutputType
- InputType
- Type
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Instance Constructors
- new ScalarType(name: String, description: Option[String] = None, coerceUserInput: (Any) => Either[Violation, T], coerceOutput: (T, Set[MarshallerCapability]) => Any, coerceInput: (ast.Value) => Either[Violation, T], complexity: Double = 0.0d, scalarInfo: Set[ScalarValueInfo] = Set.empty, astDirectives: Vector[ast.Directive] = Vector.empty, astNodes: Vector[AstNode] = Vector.empty)
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val astDirectives: Vector[ast.Directive]
- Definition Classes
- ScalarType → HasAstInfo
- val astNodes: Vector[AstNode]
- Definition Classes
- ScalarType → HasAstInfo
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- val coerceInput: (ast.Value) => Either[Violation, T]
- val coerceOutput: (T, Set[MarshallerCapability]) => Any
- val coerceUserInput: (Any) => Either[Violation, T]
- val complexity: Double
- val description: Option[String]
- Definition Classes
- ScalarType → HasDescription
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- lazy val isList: Boolean
- Definition Classes
- InputType
- lazy val isNamed: Boolean
- Definition Classes
- InputType
- lazy val isOptional: Boolean
- Definition Classes
- InputType
- val name: String
- Definition Classes
- ScalarType → Named
- def namedInputType: InputType[_]
- Definition Classes
- InputType
- def namedType: Type with Named
- Definition Classes
- Type
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- lazy val nonOptionalType: InputType[Any]
- Definition Classes
- InputType
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def rename(newName: String): ScalarType.this.type
- Definition Classes
- ScalarType → Named
- val scalarInfo: Set[ScalarValueInfo]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toAst: TypeDefinition
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()