public bool Enum(out Sample.Values value) { if (!_Enum.Exists) { value = default(Sample.Values); return(false); } value = _Enum.Value; return(true); }
public void Enum(Sample.Values value) { _Enum.Value = value; }
public unsafe bool ReadFrom(WireType.WireTypeReader reader) { if (reader is null) { throw new System.ArgumentNullException(nameof(reader)); } long size = reader.Current.Size; long alreadyRead = reader.TotalRead; while (reader.TotalRead - alreadyRead < size) { if (!reader.Read(out WireType.TypeHeader header)) { return(false); } switch (header.Ordinal) { case 1: // Text { if (header.Kind != WireType.TypeKind.ExplicitSize) { reader.Skip(); } if (reader.Read(out byte[] value)) { _Text.Value = value; } } break; case 2: // Value { if (header.Kind != WireType.TypeKind.ImplicitSize) { reader.Skip(); } if (reader.Read(out int value)) { _Value.Value = value; } } break; case 3: // Enum { if (header.Kind != WireType.TypeKind.ImplicitSize) { reader.Skip(); } if (reader.Read(out int value)) { _Enum.Value = (Sample.Values)value; } } break; case 4: // Values { if (header.Kind != WireType.TypeKind.ImplicitSizeList) { reader.Skip(); } if (reader.Read(out float[] values)) { _Values.Value = values; } } break; case 5: // List { if (header.Kind != WireType.TypeKind.ImplicitSizeList) { reader.Skip(); } if (reader.Read(out ulong[] values)) { _List.Value = values; } } break; case 6: // Enums { if (header.Kind != WireType.TypeKind.ImplicitSizeList) { reader.Skip(); } if (reader.Read(out int[] temp)) { var values = new Sample.Values[temp.Length]; System.Buffer.BlockCopy(temp, 0, values, 0, temp.Length * sizeof(int)); _Enums.Value = values; } } break; } } return(true); }