System.IO.Stream.ReadVarString()

Here are the examples of the csharp api System.IO.Stream.ReadVarString() taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

1 Examples 7

19 Source : StreamDecodingExtensions.cs
with MIT License
from yjs

[MethodImpl(MethodImplOptions.AggressiveInlining)]
        public static object ReadAny(this Stream stream)
        {
            byte type = stream._ReadByte();
            switch (type)
            {
                case 119: // String
                    return stream.ReadVarString();
                case 120: // boolean true
                    return true;
                case 121: // boolean false
                    return false;
                case 123: // Float64
#if NETSTANDARD2_0
                    var dBytes = new byte[8];
                    stream._ReadBytes(dBytes);

                    if (BitConverter.IsLittleEndian)
                    {
                        Array.Reverse(dBytes);
                    }

                    return BitConverter.ToDouble(dBytes, 0);
#elif NETSTANDARD2_1
                    Span<byte> dBytes = stackalloc byte[8];
                    stream._ReadBytes(dBytes);

                    if (BitConverter.IsLittleEndian)
                    {
                        dBytes.Reverse();
                    }

                    return BitConverter.ToDouble(dBytes);
#endif // NETSTANDARD2_0
                case 124: // Float32
#if NETSTANDARD2_0
                    var fBytes = new byte[4];
                    stream._ReadBytes(fBytes);

                    if (BitConverter.IsLittleEndian)
                    {
                        Array.Reverse(fBytes);
                    }

                    return BitConverter.ToSingle(fBytes, 0);
#elif NETSTANDARD2_1
                    Span<byte> fBytes = stackalloc byte[4];
                    stream._ReadBytes(fBytes);

                    if (BitConverter.IsLittleEndian)
                    {
                        fBytes.Reverse();
                    }

                    return BitConverter.ToSingle(fBytes);
#endif // NETSTANDARD2_0
                case 125: // integer
                    return (int)stream.ReadVarInt().Value;
                case 126: // null
                case 127: // undefined
                    return null;
                case 116: // ArrayBuffer
                    return stream.ReadVarUint8Array();
                case 117: // Array<object>
                    {
                        var len = (int)stream.ReadVarUint();
                        var arr = new List<object>(len);

                        for (int i = 0; i < len; i++)
                        {
                            arr.Add(stream.ReadAny());
                        }

                        return arr;
                    }
                case 118: // object (Dictionary<string, object>)
                    {
                        var len = (int)stream.ReadVarUint();
                        var obj = new Dictionary<string, object>(len);

                        for (int i = 0; i < len; i++)
                        {
                            var key = stream.ReadVarString();
                            obj[key] = stream.ReadAny();
                        }

                        return obj;
                    }
                default:
                    throw new InvalidDataException($"Unknown object type: {type}");
            }
        }