public void OnKeyValuePair(string name, KVValue value)
        {
            Write(GetNodeType(value.ValueType));
            WriteNullTerminatedBytes(Encoding.UTF8.GetBytes(name));

            switch (value.ValueType)
            {
            case KVValueType.FloatingPoint:
                writer.Write((float)value);
                break;

            case KVValueType.Int32:
            case KVValueType.Pointer:
                writer.Write((int)value);
                break;

            case KVValueType.String:
                WriteNullTerminatedBytes(Encoding.UTF8.GetBytes((string)value));
                break;

            case KVValueType.UInt64:
                writer.Write((ulong)value);
                break;

            case KVValueType.Int64:
                writer.Write((long)value);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(value.ValueType), value.ValueType, "Unhandled value type.");
            }
        }
        public void OnKeyValuePair(string name, KVValue value)
        {
            Write(GetNodeType(value.ValueType));
            Write(name);

            switch (value.ValueType)
            {
            case KVValueType.FloatingPoint:
                writer.Write((float)value);
                break;

            case KVValueType.Int32:
            case KVValueType.Pointer:
                writer.Write((int)value);
                break;

            case KVValueType.String:
                Write((string)value);
                break;

            case KVValueType.UInt64:
                writer.Write((ulong)value);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(value.ValueType), value.ValueType, "Value was of an unsupported type.");
            }
        }
Exemple #3
0
 void WriteKeyValuePair(string name, KVValue value)
 {
     WriteIndentation();
     WriteText(name);
     writer.Write('\t');
     WriteText((string)value);
     WriteLine();
 }
Exemple #4
0
        public void OnKeyValuePair(string name, KVValue value)
        {
            if (StateStack.Count > 0)
            {
                var state = StateStack.Peek();
                state.Items.Add(new KVObject(name, value));
            }
            else
            {
                var state = new KVPartialState();
                state.Key   = name;
                state.Value = value;

                StateStack.Push(state);
            }
        }
        void VisitObject(string name, KVValue value)
        {
            switch (value.ValueType)
            {
            case KVValueType.Collection:
                listener.OnObjectStart(name);
                VisitValue((IEnumerable <KVObject>)value);
                listener.OnObjectEnd();
                break;

            case KVValueType.FloatingPoint:
            case KVValueType.Int32:
            case KVValueType.Pointer:
            case KVValueType.String:
            case KVValueType.UInt64:
            case KVValueType.Int64:
                listener.OnKeyValuePair(name, value);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(value.ValueType), value.ValueType, "Unhandled value type.");
            }
        }
Exemple #6
0
 public void OnKeyValuePair(string name, KVValue value)
 => WriteKeyValuePair(name, value);
Exemple #7
0
 public string KVValueToStringIsSane(KVValue value) => value.ToString();
Exemple #8
0
 public void SetValue(KVValue value) => CurrentObject.Value = value;
 public string KVValueToStringIsSane(KVValue value) => value.ToString();
 public void SetValue(KVValue value) => CurrentObject.Value = value;