Exemple #1
0
        public bool Enum(out Sample.Values value)
        {
            if (!_Enum.Exists)
            {
                value = default(Sample.Values);
                return(false);
            }

            value = _Enum.Value;
            return(true);
        }
Exemple #2
0
 public void Enum(Sample.Values value)
 {
     _Enum.Value = value;
 }
Exemple #3
0
        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);
        }