mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-05-10 12:41:57 -05:00
155 lines
3.9 KiB
C#
155 lines
3.9 KiB
C#
using System;
|
|
|
|
|
|
namespace UniJSON
|
|
{
|
|
public enum TomlValueType
|
|
{
|
|
BareKey, // key
|
|
QuotedKey, // "key"
|
|
DottedKey, // key.nested
|
|
BasicString, // "str"
|
|
MultilineBasicString, // """str"""
|
|
LiteralString, // 'str'
|
|
MultilineLiteralString, // '''str'''
|
|
Integer,
|
|
Float,
|
|
Boolean,
|
|
OffsetDatetime,
|
|
Array, // [1, 2, 3]
|
|
Table, // [table_name]
|
|
}
|
|
|
|
public struct TomlValue : IListTreeItem, IValue<TomlValue>
|
|
{
|
|
public override string ToString()
|
|
{
|
|
return m_segment.ToString();
|
|
}
|
|
|
|
public int ParentIndex { get; private set; }
|
|
|
|
public TomlValueType TomlValueType
|
|
{
|
|
get;
|
|
private set;
|
|
}
|
|
|
|
public ValueNodeType ValueType
|
|
{
|
|
get
|
|
{
|
|
switch (TomlValueType)
|
|
{
|
|
case TomlValueType.Integer: return ValueNodeType.Integer;
|
|
case TomlValueType.Float: return ValueNodeType.Number;
|
|
case TomlValueType.Boolean: return ValueNodeType.Boolean;
|
|
|
|
case TomlValueType.BareKey: return ValueNodeType.String;
|
|
case TomlValueType.QuotedKey: return ValueNodeType.String;
|
|
case TomlValueType.DottedKey: return ValueNodeType.String;
|
|
|
|
case TomlValueType.BasicString: return ValueNodeType.String;
|
|
case TomlValueType.MultilineBasicString: return ValueNodeType.String;
|
|
case TomlValueType.LiteralString: return ValueNodeType.String;
|
|
case TomlValueType.MultilineLiteralString: return ValueNodeType.String;
|
|
|
|
case TomlValueType.Table: return ValueNodeType.Object;
|
|
case TomlValueType.Array: return ValueNodeType.Array;
|
|
}
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
|
|
Utf8String m_segment;
|
|
public ArraySegment<byte> Bytes { get { return m_segment.Bytes; } }
|
|
|
|
public TomlValue(Utf8String segment, TomlValueType valueType, int parentIndex) : this()
|
|
{
|
|
ParentIndex = parentIndex;
|
|
TomlValueType = valueType;
|
|
m_segment = segment;
|
|
}
|
|
|
|
public bool GetBoolean()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public byte GetByte()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public double GetDouble()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public short GetInt16()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public int GetInt32()
|
|
{
|
|
return m_segment.ToInt32();
|
|
}
|
|
|
|
public long GetInt64()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public sbyte GetSByte()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public float GetSingle()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public string GetString()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public ushort GetUInt16()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public uint GetUInt32()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public ulong GetUInt64()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Utf8String GetUtf8String()
|
|
{
|
|
return m_segment;
|
|
}
|
|
|
|
public U GetValue<U>()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public TomlValue Key(Utf8String key, int parentIndex)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public TomlValue New(ArraySegment<byte> bytes, ValueNodeType valueType, int parentIndex)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
}
|