public void WriteDiscriminator(ref CborWriter writer, Type actualType) { if (!_discriminatorsByType.TryGetValue(actualType, out T discriminator)) { throw new CborException($"Unknown discriminator for type: {actualType}"); } _converter.Write(ref writer, discriminator); }
public bool WriteArrayItem(ref CborWriter writer, ref WriterContext context) { if (context.array.Length == 0) { return(false); } _itemConverter.Write(ref writer, context.array[context.index++]); return(context.index < context.array.Length); }
public static string Write <T>(T value, CborOptions options = null) { options = options ?? CborOptions.Default; using (ByteBufferWriter bufferWriter = new ByteBufferWriter()) { CborWriter writer = new CborWriter(bufferWriter); ICborConverter <T> converter = options.Registry.ConverterRegistry.Lookup <T>(); converter.Write(ref writer, value); return(BitConverter.ToString(bufferWriter.WrittenSpan.ToArray()).Replace("-", "")); } }
public void Write(ref CborWriter writer, object obj) { if (_memberGetter == null) { throw new CborException($"No member getter for '{Encoding.UTF8.GetString(_memberName.Span)}'"); } TM value = _memberGetter((T)obj); if (_isClass && value == null && (_requirementPolicy == RequirementPolicy.DisallowNull || _requirementPolicy == RequirementPolicy.Always)) { throw new CborException($"Property '{Encoding.UTF8.GetString(_memberName.Span)}' cannot be null."); } _converter.Write(ref writer, value, _lengthMode); }
public void Write(ref CborWriter writer, ref T instance) { if (_memberGetter == null) { throw new CborException($"No member getter for '{MemberNameAsString}'"); } TM value = _memberGetter(ref instance); if (_isClass && value == null && (_requirementPolicy == RequirementPolicy.DisallowNull || _requirementPolicy == RequirementPolicy.Always)) { throw new CborException($"Property '{MemberNameAsString}' cannot be null."); } _converter.Write(ref writer, value); }