private void WriteTdfMap(TdfMap tdf)
{
// write list types
_stream.WriteByte((byte)tdf.KeyType);
_stream.WriteByte((byte)tdf.ValueType);
// write list size
_stream.WriteByte((byte)tdf.Map.Count);
// write map
Action<TdfBaseType, Object> writeListItem = (type, item) =>
{
switch (type)
{
case TdfBaseType.Integer:
WriteInteger((ulong)item);
break;
case TdfBaseType.String:
WriteString((string)item);
break;
case TdfBaseType.Struct:
WriteStruct((List<Tdf>)item);
break;
default:
Log.Warn(string.Format("Unknown list item type: {0}", type));
break;
}
};
foreach (var item in tdf.Map)
{
writeListItem(tdf.KeyType, item.Key);
writeListItem(tdf.ValueType, item.Value);
}
}