Package

scala

pickling

Permalink

package pickling

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. pickling
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. abstract class AbstractPReader extends PReader with PickleTools

    Permalink
  2. abstract class AbstractPickler[T] extends Pickler[T]

    Permalink
  3. abstract class AbstractPicklerUnpickler[T] extends Pickler[T] with Unpickler[T]

    Permalink
  4. abstract class AbstractUnpickler[T] extends Unpickler[T]

    Permalink
  5. abstract class AbtsractPBuilder extends PBuilder with PickleTools

    Permalink
  6. trait AutoRegister[T] extends AutoRegisterPickler[T] with AutoRegisterUnpickler[T]

    Permalink
  7. trait AutoRegisterPickler[T] extends AnyRef

    Permalink
  8. trait AutoRegisterUnpickler[T] extends AnyRef

    Permalink
  9. trait DPickler[T] extends AnyRef

    Permalink

    A dynamic pickler for type T.

    A dynamic pickler for type T. Its pickle method takes an object-to-be-pickled of static type T, and pickles it to an instance of PBuilder. In the process the object is turned into some external representation like a byte array. The particular external representation (the "pickle format") is defined by the builder.

    In contrast to static picklers (instances of type Pickler[T]), a dynamic pickler of type DPickler[T] pickles any object of type T.

    Annotations
    @implicitNotFound( ... )
  10. type FastTypeTag[T] = pickling.tags.FastTypeTag[T]

    Permalink
  11. trait Generated extends AnyRef

    Permalink
  12. trait Hintable extends AnyRef

    Permalink

    Hintable defines the interface used between picklers and formats to "aide' in creating clean/efficient formats.

    Hintable defines the interface used between picklers and formats to "aide' in creating clean/efficient formats.

    The FULL features picklers allow: - eliding statically known types - structural sharing of data - possible binary size optimizations (using jvm sizes)

    Obviously not all picklers will use these mechanisms.


    Size Optimization

    If a pickler/unpickler calls hintKnownSize, it's talking about a binary size of the following entry. ----

    Type Optimization

    If a pickler/unpickler call hintElidedType, it's allowing the underlying format to 'drop' the forced storage of a type tag. ----

    Structural Sharing

    If a pickler/unpickler calls hintOid, it's telling the underlying format that this particular pickler entry shares it structure with the same entry of that number.

    Currently, rather than using known tags, picklers assume a per-pickle ordinal associated with each entry. This ordinal should be automatically tracked and restored.

  13. case class Hints(knownSize: Int = 1, elidedType: Option[FastTypeTag[_]] = None, oid: Int = 1, pinned: Boolean = false) extends Product with Serializable

    Permalink
  14. sealed trait IsStaticOnly extends AnyRef

    Permalink
  15. abstract class Macro extends RichTypes

    Permalink
  16. trait Ops extends AnyRef

    Permalink

    A layer of protocol stack that can "lift" picklable types to have the core pickle operations.

    A layer of protocol stack that can "lift" picklable types to have the core pickle operations.

    For example usage, see scala.pickling.Defaults

  17. trait Output[T] extends AnyRef

    Permalink
  18. trait PBuilder extends Hintable

    Permalink

    A builder of pickled content.

    A builder of pickled content. This is a mutable API, intended to be called in certain specific ways.

    Here are a few static rules that all picklers must follow when using this interface.

    1. There will be one endEntry() for every beginEntry() call. 2. There will be one endCollection() for every beginCollection() call. 3. Every beginCollection()/endCollection() pair will be inside a beginEntry()/endEntry() pair. 4. Every putElement() call must happen within a beginCollection()/endCollection() block. 5. Every putField() call must happen within a beginEntry()/endEntry() block. 6. There is no guarantee that putElement() will be called within a beginCollectoin()/endCollection() pair. i.e. we can write empty collections. 7. There is no guarantee that putField will be called within a beginEntry()/endEntry() pair. i.e. if we don't put any fields, this means the entry was for a "primitive" type, at least what The pickling library considers primitives. 8. The order of putField calls in any pickler will be the exact same ordering when unpickling, if the format is compatible.

    Here is a list of all types the auto-generated Picklers considers "primitives" and must be directly supported by any PBuilder:

    • Nothing
    • Null
    • Unit
    • Byte
    • Char
    • String
    • Short
    • Int
    • Long
    • Float
    • Double
    • Ref (for circular object graphs)
    • ArrayByte
    • ArrayShort
    • ArrayChar
    • ArrayInt
    • ArrayLong
    • ArrayBoolean
    • ArrayFloat
    • ArrayDouble
  19. trait PReader extends Hintable

    Permalink

    A reader of pickled content.

    A reader of pickled content. This is a mutable API, intended to be called in certain specific ways.

    Here are a few static rules that all picklers must follow when using this interface.

    1. There will be one endEntry() for every beginEntry() call. 2. There will be one endCollection() for every beginCollection() call. 3. Every beginCollection()/endCollection() pair will be inside a beginEntry()/endEntry() pair. 4. Every readLength() call will be immediately after a beginCollection() call. 5. Every readElement() call must happen within a beginCollection()/endCollection() block, and after a readLength(). 6. Every readField() call must happen within a beginEntry()/endEntry() block. 7. If readLength() returns 0, there will be no called to readElement(). 8. readField() will only be called where atObject would return true 9. readPrimitive will only be called when atPrimitive would return true 10. The order of readField calls in any pickler will be the exact same ordering when pickling,

    Here is a list of all types the auto-generated Picklers considers "primitives" and must be directly supported by any PReader "readPrimitive" operation:

    • Nothing
    • Null
    • Unit
    • Byte
    • Char
    • String
    • Short
    • Int
    • Long
    • Float
    • Double
    • Ref (for circular object graphs)
    • ArrayByte
    • ArrayShort
    • ArrayChar
    • ArrayInt
    • ArrayLong
    • ArrayBoolean
    • ArrayFloat
    • ArrayDouble
  20. trait Pickle extends AnyRef

    Permalink

    Holds the serialized representation of a value, such as an Array[Byte].

    Holds the serialized representation of a value, such as an Array[Byte].

    A Pickle is only returned by PickleOps.pickle. A directly-streamed PBuilder must be used together with PickleOps.pickleTo or PickleOps.pickleInto which return Unit instead of a pickle.

    When unpickling from a stream, a subclass such as BinaryInputPickle is used, which initializes the value to a dummy value. TODO - we may want to rethink this interface.

  21. trait PickleFormat extends AnyRef

    Permalink

    A format for how to pickle the structure of an object.

  22. trait PickleMacros extends Macro with TypeAnalysis

    Permalink
  23. final case class PickleOps[T](picklee: T) extends Product with Serializable

    Permalink

    Appends the pickle/pickleTo/pickleInto operations onto any type, assuming implicits picklers are available.

  24. trait PickleTools extends Hintable

    Permalink
  25. trait Pickler[T] extends AnyRef

    Permalink

    A static pickler for type T.

    A static pickler for type T. Its pickle method takes an object-to-be-pickled of static type T, and pickles it to an instance of PBuilder. In the process the object is turned into some external representation like a byte array. The particular external representation (the "pickle format") is defined by the builder.

    This pickler requires that the dynamic type of the object-to-be-pickled is equal to the erasure of its static type T.

    Annotations
    @implicitNotFound( ... )
  26. type PicklingException = BasePicklingException

    Permalink
  27. trait RichTypes extends AnyRef

    Permalink
  28. abstract class ShareAnalyzer[U <: Universe] extends RichTypes

    Permalink
  29. class StringOutput extends Output[String]

    Permalink
  30. class Tools[C <: Context] extends AnyRef

    Permalink
  31. trait TypeAnalysis extends Macro

    Permalink
  32. final case class UnpickleOps(thePickle: Pickle) extends Product with Serializable

    Permalink
  33. trait Unpickler[T] extends AnyRef

    Permalink

    This is something which knowns how to reconstitute/materialize a type out of a pickle reader.

    This is something which knowns how to reconstitute/materialize a type out of a pickle reader.

    Annotations
    @implicitNotFound( ... )
  34. class directSubclasses extends Annotation with Annotation with ClassfileAnnotation

    Permalink

Value Members

  1. object Compat

    Permalink
  2. object Defaults extends Ops with AllPicklers

    Permalink

    Import scala.pickling.Defaults._ to introduce all picklers and ops.

  3. val FastTypeTag: pickling.tags.FastTypeTag.type

    Permalink
  4. object Pickler

    Permalink
  5. object PicklerUnpickler

    Permalink
  6. object PicklingErrors

    Permalink
  7. val PicklingException: BasePicklingException.type

    Permalink
  8. object Tools

    Permalink
  9. object Unpickler

    Permalink
  10. package binary

    Permalink
  11. object functions

    Permalink
  12. package generator

    Permalink
  13. package internal

    Permalink
  14. package io

    Permalink
  15. package ir

    Permalink
  16. package json

    Permalink
  17. package pickler

    Permalink
  18. package refs

    Permalink
  19. package runtime

    Permalink
  20. package shareEverything

    Permalink
  21. package shareNothing

    Permalink
  22. package spi

    Permalink
  23. package static

    Permalink
  24. package tags

    Permalink
  25. package util

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped