public virtual void WriteCurrentToken()

in Microsoft.Azure.Cosmos/src/Json/JsonReader.cs [138:288]


        public virtual void WriteCurrentToken(IJsonWriter writer)
        {
            if (writer == null)
            {
                throw new ArgumentNullException(nameof(writer));
            }

            JsonTokenType tokenType = this.CurrentTokenType;
            switch (tokenType)
            {
                case JsonTokenType.NotStarted:
                    break;

                case JsonTokenType.BeginArray:
                    writer.WriteArrayStart();
                    break;

                case JsonTokenType.EndArray:
                    writer.WriteArrayEnd();
                    break;

                case JsonTokenType.BeginObject:
                    writer.WriteObjectStart();
                    break;

                case JsonTokenType.EndObject:
                    writer.WriteObjectEnd();
                    break;

                case JsonTokenType.FieldName:
                case JsonTokenType.String:
                    {
                        bool isFieldName = tokenType == JsonTokenType.FieldName;

                        if (this.TryGetBufferedStringValue(out Utf8Memory bufferedStringValue))
                        {
                            if (isFieldName)
                            {
                                writer.WriteFieldName(bufferedStringValue.Span);
                            }
                            else
                            {
                                writer.WriteStringValue(bufferedStringValue.Span);
                            }
                        }
                        else
                        {
                            string value = this.GetStringValue();
                            if (isFieldName)
                            {
                                writer.WriteFieldName(value);
                            }
                            else
                            {
                                writer.WriteStringValue(value);
                            }
                        }
                    }
                    break;

                case JsonTokenType.Number:
                    if (this.TryGetUInt64NumberValue(out ulong uint64Value))
                    {
                        writer.WriteNumberValue(uint64Value);
                    }
                    else
                    {
                        Number64 value = this.GetNumberValue();
                        writer.WriteNumberValue(value);
                    }
                    break;

                case JsonTokenType.True:
                    writer.WriteBoolValue(true);
                    break;

                case JsonTokenType.False:
                    writer.WriteBoolValue(false);
                    break;

                case JsonTokenType.Null:
                    writer.WriteNullValue();
                    break;

                case JsonTokenType.Int8:
                    {
                        sbyte value = this.GetInt8Value();
                        writer.WriteInt8Value(value);
                    }
                    break;

                case JsonTokenType.Int16:
                    {
                        short value = this.GetInt16Value();
                        writer.WriteInt16Value(value);
                    }
                    break;

                case JsonTokenType.Int32:
                    {
                        int value = this.GetInt32Value();
                        writer.WriteInt32Value(value);
                    }
                    break;

                case JsonTokenType.Int64:
                    {
                        long value = this.GetInt64Value();
                        writer.WriteInt64Value(value);
                    }
                    break;

                case JsonTokenType.UInt32:
                    {
                        uint value = this.GetUInt32Value();
                        writer.WriteUInt32Value(value);
                    }
                    break;

                case JsonTokenType.Float32:
                    {
                        float value = this.GetFloat32Value();
                        writer.WriteFloat32Value(value);
                    }
                    break;

                case JsonTokenType.Float64:
                    {
                        double value = this.GetFloat64Value();
                        writer.WriteFloat64Value(value);
                    }
                    break;

                case JsonTokenType.Guid:
                    {
                        Guid value = this.GetGuidValue();
                        writer.WriteGuidValue(value);
                    }
                    break;

                case JsonTokenType.Binary:
                    {
                        ReadOnlyMemory<byte> value = this.GetBinaryValue();
                        writer.WriteBinaryValue(value.Span);
                    }
                    break;

                default:
                    throw new InvalidOperationException($"Unknown enum type: {tokenType}.");
            }
        }