public override void Write(ProtoWriter dest, ref ProtoWriter.State state, object value) { ProtoWriter.WriteUInt16((ushort)(char)value, dest, ref state); }
public void Write(ref ProtoWriter.State state, object value) { state.WriteDouble((double)value); }
void IRuntimeProtoSerializerNode.Write(ref ProtoWriter.State state, object value) { state.WriteType((Type)value); }
void ISerializer <T> .Write(ref ProtoWriter.State state, T value) => Write(ref state, value);
void ISerializer <Duration> .Write(ref ProtoWriter.State state, Duration value) => WriteSecondsNanos(ref state, value.Seconds, value.Nanoseconds, false);
public void Write(ref ProtoWriter.State state, object value) { BclHelpers.WriteNetObject(ref state, value, options); }
public void Write(ref ProtoWriter.State state, object value) { state.WriteString(value.ToString()); }
internal static bool TrySerializeRoot(Type type, TypeModel model, ref ProtoWriter.State state, object value) => Get(type).TrySerializeRoot(model, ref state, value);
internal static bool TrySerializeAny(int fieldNumber, SerializerFeatures features, Type type, TypeModel model, ref ProtoWriter.State state, object value) => Get(type).TrySerializeAny(fieldNumber, features, model, ref state, value);
protected override bool TrySerializeAny(int fieldNumber, SerializerFeatures features, TypeModel model, ref ProtoWriter.State state, object value) => false;
protected override bool TrySerializeAny(int fieldNumber, SerializerFeatures features, TypeModel model, ref ProtoWriter.State state, object value) { var serializer = TypeModel.TryGetSerializer <T>(model); if (serializer == null) { return(false); } // note this null-check is non-trivial; for value-type T it promotes the null to a default T typed = TypeHelper <T> .FromObject(value); CheckAnyAuxFlow(features, serializer); if ((features & SerializerFeatures.CategoryMessageWrappedAtRoot) == SerializerFeatures.CategoryMessageWrappedAtRoot) { if (fieldNumber != TypeModel.ListItemTag) { ThrowHelper.ThrowInvalidOperationException($"Special root-like wrapping is limited to field {TypeModel.ListItemTag}"); } state.WriteAsRoot <T>(typed, serializer); } else { state.WriteAny <T>(fieldNumber, features, typed, serializer); } return(true); }
protected override bool TrySerializeRoot(TypeModel model, ref ProtoWriter.State state, object value) => false;
public void Write(ref ProtoWriter.State state, object value) { state.WriteInt16((short)value); }
public void Write(ProtoWriter dest, ref ProtoWriter.State state, object value) { ProtoWriter.WriteUInt32((uint)value, dest, ref state); }
public override void Write(ref ProtoWriter.State state, T value) => state.WriteBaseType <TBase>(value);
public override void Write(ref ProtoWriter.State state, object value) { serializer(ref state, TypeHelper <T> .FromObject(value)); }
void ISubTypeSerializer <T> .WriteSubType(ref ProtoWriter.State state, T value) => SerializeImpl(ref state, value);
void ISerializer <T> .Write(ref ProtoWriter.State state, T value) { state.WriteBaseType <TBase>(value); }
void ISerializer <string> .Write(ref ProtoWriter.State state, string value) => state.WriteString(value);
public override void Write(ref ProtoWriter.State state, object value) { state.WriteBaseType <TBase>(TypeHelper <T> .FromObject(value)); }
public void Write(ProtoWriter dest, ref ProtoWriter.State state, object value) { ProtoWriter.WriteSByte((sbyte)value, dest, ref state); }
void ISubTypeSerializer <T> .WriteSubType(ref ProtoWriter.State state, T value) { subTypeSerializer(ref state, value); }
public void Write(ProtoWriter dest, ref ProtoWriter.State state, object value) { ProtoWriter.WriteString((string)value, dest, ref state); }
public void Write(ref ProtoWriter.State state, object value) { state.WriteBytes((byte[])value); }
void ISerializer <Duration?> .Write(ref ProtoWriter.State state, Duration?value) => ((ISerializer <Duration>) this).Write(ref state, value.Value);
public override void Write(ProtoWriter dest, ref ProtoWriter.State state, object value) { Tail.Write(dest, ref state, ((Uri)value).OriginalString); }
public abstract void Write(ProtoWriter dest, ref ProtoWriter.State state, object value);
public override void Write(ProtoWriter dest, ref ProtoWriter.State state, object value) { ProtoWriter.WriteFieldHeader(fieldNumber, wireType, dest, ref state); Tail.Write(dest, ref state, value); }
internal override void Write(ref ProtoWriter.State state, int fieldNumber, WireType wireType, ImmutableSortedDictionary <TKey, TValue> values, in KeyValuePairSerializer <TKey, TValue> pairSerializer)
public override void Write(ref ProtoWriter.State state, object value) => state.WriteSubType <TChild>((TChild)value);