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."); } }
void WriteKeyValuePair(string name, KVValue value) { WriteIndentation(); WriteText(name); writer.Write('\t'); WriteText((string)value); WriteLine(); }
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."); } }
public void OnKeyValuePair(string name, KVValue value) => WriteKeyValuePair(name, value);
public string KVValueToStringIsSane(KVValue value) => value.ToString();
public void SetValue(KVValue value) => CurrentObject.Value = value;