sealed trait Data extends AnyRef
An algebraic datatype that allows to encode trees of data containing integers (DInt), strings (DString), and IDs of objects (DObject) in the object store of the Isabelle process. A constructor DList is used to create a tree structure.
No particular semantics is given to these trees, their purpose is to be a sufficiently flexible datatype to be able to encode arbitrary data types for transfer.
A corresponding datatype is defined in the Control_Isabelle
ML structure in the Isabelle process:
datatype data = DString of string | DInt of int | DList of data list | DObject of exn
Note that while DObject on the Scala side contains an ID of an object, on the ML side we instead
directly have the object that is references (of type exn
). Serialization and deserialization creates and
dereferences object IDs as needed.
The data that can be stored in these trees is subject to the following additional limitations:
- Strings must be ASCII (non-ASCII characters will be replaced by default characters).
- Integers must be 64bit signed integers (this is enforced in Scala due to the size of the type Long but ML integers have no size limit (like BigInt)). Larger integers will be truncated to 64 bits.
- Strings must be at most 67.108.856 characters long (
String.maxSize
in ML). Otherwise there an exception is raised in the Isabelle process
- Source
- Isabelle.scala
- See also
applyFunction for details how to use this type to transfer data
- Alphabetic
- By Inheritance
- Data
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
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
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- 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()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])