Table of Contents

Namespace ShapeShift

Classes

ConverterCollection
ConverterCollection<TEncoder, TDecoder>

An immutable collection of converters.

ConverterTypeCollection

An immutable collection of ShapeShiftConverter<T, TEncoder, TDecoder> types.

DecoderException

The exception a decoder throws when its input is malformed.

DecoderExtensions

Extension methods for IDecoder.

PipeReaderExtensions

Extension methods for PipeReader that drive incremental, boundary-scanned value decoding.

PipeWriterExtensions

Extension methods for PipeWriter.

ShapeShiftArray

Represents a sequence of dynamic values.

ShapeShiftBigInteger

Represents an arbitrary-precision integer value.

ShapeShiftBinary

Represents a binary value.

ShapeShiftBoolean

Represents a Boolean value.

ShapeShiftConverterAttribute

A class applied to a custom data type to prescribe a custom ShapeShiftConverter<T, TEncoder, TDecoder> implementation to use for serialization.

ShapeShiftConverter<TEncoder, TDecoder>
ShapeShiftConverter<T, TEncoder, TDecoder>
ShapeShiftDecimal

Represents a decimal value.

ShapeShiftExtensionDataAttribute

Marks a Dictionary<TKey, TValue> of string to ShapeShiftValue that captures unknown properties and writes them back as peer properties.

ShapeShiftFloat

Represents a floating-point value.

ShapeShiftInteger

Represents a signed integer value.

ShapeShiftMap

Represents a map whose keys are strings.

ShapeShiftNamingPolicy

Defines a transformation for property names from .NET to msgpack.

ShapeShiftNull

Represents a null value.

ShapeShiftNumber

Represents any dynamic numeric value.

ShapeShiftSerializationException

The exception thrown when a value cannot be serialized or deserialized.

ShapeShiftSerializer<TEncoder, TDecoder>

A format-agnostic base class for serializers that use specific encoders and decoders.

ShapeShiftString

Represents a string value.

ShapeShiftUnsignedInteger

Represents an unsigned integer value.

ShapeShiftValue

Represents a value in the format-neutral ShapeShift data model.

UseComparerAttribute

Specifies a comparer to be used for the keyed collections on the decorated member.

Structs

ConverterContext<TEncoder, TDecoder>

Context in which a IShapeShiftConverterFactory<TEncoder, TDecoder> is invoked.

ConverterTypeCollection.ConverterType

A wrapper around Type that ensures a trimmed application will preserve the type's public constructors.

SerializationContext<TEncoder, TDecoder>
ShapeShiftDocumentReader<T, TEncoder, TDecoder>

Enables incremental, low-allocation enumeration of a sequence of whole top-level values sharing one decoder, such as newline-delimited JSON (NDJSON) or a buffer containing several concatenated MessagePack values.

ShapeShiftPath

Identifies the location of a value within a serialized document as a sequence of ShapeShiftPathElement steps, each of which is either a map property name or a vector index.

ShapeShiftPathElement

Identifies a single step within a ShapeShiftPath: either the name of a map property, or the 0-based index of an element within a vector.

ShapeShiftSequenceReader<T, TEncoder, TDecoder>

Enables incremental, low-allocation enumeration of the elements of a vector (a JSON array, or a MessagePack array), whether that vector is the root of a document, or is reached by first seeking into an enclosing document (for example with ShapeShiftPath).

ShapeShiftSerializer<TEncoder, TDecoder>.DisposableSerializationContext

A wrapper around SerializationContext<TEncoder, TDecoder> that makes disposal easier.

Interfaces

IDecoder

Reads the ShapeShift data model from one particular wire format.

IEncoder

Writes the ShapeShift data model in one particular wire format.

IReferencePreservingSerializer<TEncoder, TDecoder>

Implemented by a format's serializer when the format can represent a back-reference to an object it has already written.

IShapeShiftConverterFactory<TEncoder, TDecoder>

A factory for ShapeShiftConverter<TEncoder, TDecoder> objects of arbitrary types.

IShapeShiftSerializationCallbacks

An interface that may be implemented to receive callbacks before serialization and after deserialization.

IValueBoundaryScanner

Locates the boundary of the next complete, self-delimited top-level value within a growing buffer, without fully parsing or converting it.

Enums

DeserializeDefaultValuesPolicy

Specifies how missing and null values are handled during deserialization.

ReferencePreservationMode

An enumeration of the modes supported for preserving references in serialized object graphs.

SerializeDefaultValuesPolicy

Specifies which properties with default values are serialized.

TokenType

The kinds of token an IDecoder reports, which is the vocabulary every format-neutral converter dispatches on.