public ref struct SerializationReaderReads the binary format out of a span.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
Span-only, with no stream form, and that is a deliberate pair with Vixen.Core.IO's memory mapping. A bundle on disk is mapped rather than read, so "the whole file in a span" costs no copy and no allocation, and the pages holding the two hundred assets nobody asked for are never faulted in. A stream-based reader would give up both of those to support a case — reading content off a socket without buffering it — that does not exist.
Reading past the end throws SerializationException rather than returning garbage. Deserialisation runs over data that may be truncated, corrupt, or from a future version, and the difference between an exception and silence is the difference between a diagnosable failure and a mysterious one.
Fields and properties (2)
public readonly int BytesReadHow many bytes have been consumed.
public readonly int RemainingHow many bytes are left.
Methods (32)
public SerializationReader(ReadOnlySpan<byte> source)Reads from a span.
public byte ReadByte()Reads one byte.
public bool ReadBoolean()Reads a boolean.
public sbyte ReadSByte()Reads a signed byte.
public short ReadInt16()Reads a 16-bit integer.
public ushort ReadUInt16()Reads an unsigned 16-bit integer.
public int ReadInt32()Reads a 32-bit integer.
public uint ReadUInt32()Reads an unsigned 32-bit integer.
public long ReadInt64()Reads a 64-bit integer.
public ulong ReadUInt64()Reads an unsigned 64-bit integer.
public char ReadChar()Reads a 16-bit character.
public Half ReadHalf()Reads a half-precision float.
public float ReadSingle()Reads a single-precision float.
public double ReadDouble()Reads a double-precision float.
public decimal ReadDecimal()Reads a decimal.
public Guid ReadGuid()Reads a Guid.
public DateTime ReadDateTime()Reads a DateTime.
public DateTimeOffset ReadDateTimeOffset()Reads a DateTimeOffset.
public TimeSpan ReadTimeSpan()Reads a TimeSpan.
public ulong ReadVarUInt64()Reads a LEB128 unsigned integer.
public long ReadVarInt64()Reads a zig-zag LEB128 signed integer.
public string? ReadString()Reads a length-prefixed UTF-8 string.
public ReadOnlySpan<byte> ReadBytes(int count)Reads raw bytes.
public void ReadBlittable<T>(Span<T> destination) where T : unmanagedReads a blittable array as one bulk copy.
public T ReadValue<T>() where T : structReads a value type through its registered serializer.
public T? ReadReference<T>() where T : classReads a reference, which may be null.
public T? ReadNullable<T>() where T : structReads a nullable value type.
public TBase? ReadPolymorphic<TBase>() where TBase : classReads a reference written by its run-time type.
public T[]? ReadArray<T>()Reads an array, element by element.
public T[]? ReadBlittableArray<T>() where T : unmanagedReads an array of a primitive type as one bulk copy.
public List<T>? ReadList<T>()Reads a list, element by element.
public Dictionary<TKey, TValue>? ReadDictionary<TKey, TValue>() where TKey : notnullReads a dictionary.
Used by (393, showing 40)
- Vixen_Samples_AddressablesRemote_GreetingSerializerAddressablesRemote
- Vixen_Samples_ThirdPersonShooter_BoxCollisionSerializerThirdPersonShooter
- Vixen_Samples_ThirdPersonShooter_CharacterVisualsSerializerThirdPersonShooter
- Vixen_Samples_ThirdPersonShooter_SpawnPointSerializerThirdPersonShooter
- AssetIdSerializerVixen.Core.Serialization
- AssetReferenceSerializerVixen.Core.Serialization
- BooleanSerializerVixen.Core.Serialization
- ByteSerializerVixen.Core.Serialization
- CharSerializerVixen.Core.Serialization
- ChunkFormatVixen.Core.Serialization
- ComponentTypeIdSerializerVixen.Core.Serialization
- ContentReferenceSerializerVixen.Core.Serialization
- ContractColumnVixen.Engine
- DataSerializerVixen.Core.Serialization
- DataSerializerVixen.Core.Serialization
- DateTimeOffsetSerializerVixen.Core.Serialization
- DateTimeSerializerVixen.Core.Serialization
- DecimalSerializerVixen.Core.Serialization
- DepthColumnVixen.Engine
- DoubleSerializerVixen.Core.Serialization
- EntitySerializerVixen.Core.Serialization
- GuidSerializerVixen.Core.Serialization
- HalfSerializerVixen.Core.Serialization
- ISceneComponentBinderVixen.Engine
- IWorldColumnVixen.Engine
- Int16SerializerVixen.Core.Serialization
- Int32SerializerVixen.Core.Serialization
- Int64SerializerVixen.Core.Serialization
- LocalTransformColumnVixen.Engine
- MigratedClassVixen.Core.Serialization.Tests
- ObjectDatabaseVixen.Core.Serialization
- ObjectIdSerializerVixen.Core.Serialization
- SByteSerializerVixen.Core.Serialization
- SceneComponentBinderVixen.Engine
- SceneContentVixen.Engine
- SceneTagColumnVixen.Engine
- SerializationTestsVixen.Core.Serialization.Tests
- SerializerVixen.Core.Serialization
- SingleSerializerVixen.Core.Serialization
- StringSerializerVixen.Core.Serialization