public static List <T> GetList <T>(this PacketReader reader) { ThrowIfArgumentError(reader); var con = Cache.GetConverter <T>(reader.converters, false); var val = Convert.ToList <T>(reader, con); return(val); }
public static HashSet <T> GetHashSet <T>(this PacketReader reader) { ThrowIfArgumentError(reader); var con = Cache.GetConverter <T>(reader.converters, false); var col = Convert.ToArray <T>(reader, con); var res = new HashSet <T>(col); return(res); }
public static Dictionary <TK, TV> GetDictionary <TK, TV>(this PacketReader reader) { ThrowIfArgumentError(reader); var key = Cache.GetConverter <TK>(reader.converters, false); var val = Cache.GetConverter <TV>(reader.converters, false); var res = Convert.ToDictionary <TK, TV>(reader, key, val); return(res); }
public static PacketWriter SetDictionary <TK, TV>(this PacketWriter writer, string key, IDictionary <TK, TV> value) { ThrowIfArgumentError(key); ThrowIfArgumentError(writer); var keycon = Cache.GetConverter <TK>(writer.converters, false); var valcon = Cache.GetConverter <TV>(writer.converters, false); var val = (value == null ? null : Convert.FromDictionary(keycon, valcon, value)); var sub = new PacketWriter(writer.converters, new ValueDictionary(val, keycon.Length, valcon.Length)); var itm = writer.GetDictionary(); itm[key] = sub; return(writer); }
public static PacketWriter SetEnumerable <T>(this PacketWriter writer, string key, IEnumerable <T> value) { ThrowIfArgumentError(key); ThrowIfArgumentError(writer); var converter = Cache.GetConverter <T>(writer.converters, false); var result = (value != null) ? (value is T[] array) ? Convert.FromArray(converter, array) : (value is List <T> list) ? Convert.FromList(converter, list) : Convert.FromEnumerable(converter, value) : null; var sub = new PacketWriter(writer.converters, new ValueArray(result, converter.Length)); var itm = writer.GetDictionary(); itm[key] = sub; return(writer); }