Exemplo n.º 1
0
        public void VisitWriteHashSet(string variable, string writer, HashSetTypeNode node, TextBuilder builder)
        {
            builder.WriteLine("int size = {0}.Count;", variable);
            builder.WriteLine("{0}.Write(size);", writer);
            builder.WriteLine("foreach(var elem in {0})", variable);
            builder.LeftPar();
            builder.Indent();

            builder.WriteIndents();
            VisitSerialization("elem", writer, node.Serialize, builder);
            builder.Write(";");
            builder.NextLine();

            builder.UnIndent();
            builder.RightPar();
        }
Exemplo n.º 2
0
        public void VisitReadHashSet(string variable, string reader, HashSetTypeNode node, TextBuilder builder)
        {
            string equalityComparer = GetEqualityComparer(node.Serialize.Type);

            builder.WriteLine("int size = {0}.ReadInt32();", reader);
            builder.WriteLine("{0} = new {1}({2});", variable, node.TypeName, equalityComparer);
            builder.WriteLine("for(int i = 0; i < size; ++i)");
            builder.LeftPar();
            builder.Indent();

            builder.WriteIndents();
            builder.Write("{0}.Add(", variable);
            VisitDeserialization(string.Format("default({0})", node.ParameterNodes[0].TypeName), reader, node.Serialize, builder);
            builder.Write(");");
            builder.NextLine();

            builder.UnIndent();
            builder.RightPar();
        }