aboutsummaryrefslogtreecommitdiff
path: root/src/ProtoGen
diff options
context:
space:
mode:
authorJon Skeet <skeet@pobox.com>2009-06-05 22:49:05 +0100
committerJon Skeet <skeet@pobox.com>2009-06-05 22:49:05 +0100
commit8729cf46284633bb7c9e7dfff57fea74510b8121 (patch)
treeb33b90ce214ec2c7957a6a93d654f4974804995e /src/ProtoGen
parentd6dd0a45608ffc34d53a60cc3db33cb38e6c2a18 (diff)
downloadprotobuf-8729cf46284633bb7c9e7dfff57fea74510b8121.tar.gz
protobuf-8729cf46284633bb7c9e7dfff57fea74510b8121.tar.bz2
protobuf-8729cf46284633bb7c9e7dfff57fea74510b8121.zip
Added the ability to use an IEnumerable<T> when adding to a list, so you can do:
new Foo.Builder { RepeatedValue = { x.Select(y) } }; ... a bit like LINQ to XML.
Diffstat (limited to 'src/ProtoGen')
-rw-r--r--src/ProtoGen/RepeatedEnumFieldGenerator.cs3
-rw-r--r--src/ProtoGen/RepeatedMessageFieldGenerator.cs3
-rw-r--r--src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs3
3 files changed, 6 insertions, 3 deletions
diff --git a/src/ProtoGen/RepeatedEnumFieldGenerator.cs b/src/ProtoGen/RepeatedEnumFieldGenerator.cs
index 473970f9..9e7f8a70 100644
--- a/src/ProtoGen/RepeatedEnumFieldGenerator.cs
+++ b/src/ProtoGen/RepeatedEnumFieldGenerator.cs
@@ -29,7 +29,8 @@ namespace Google.ProtocolBuffers.ProtoGen {
public void GenerateBuilderMembers(TextGenerator writer) {
// Note: We can return the original list here, because we make it unmodifiable when we build
- writer.WriteLine("public scg::IList<{0}> {1}List {{", TypeName, PropertyName);
+ // We return it via IPopsicleList so that collection initializers work more pleasantly.
+ writer.WriteLine("public pbc::IPopsicleList<{0}> {1}List {{", TypeName, PropertyName);
writer.WriteLine(" get {{ return result.{0}_; }}", Name);
writer.WriteLine("}");
writer.WriteLine("public int {0}Count {{", PropertyName);
diff --git a/src/ProtoGen/RepeatedMessageFieldGenerator.cs b/src/ProtoGen/RepeatedMessageFieldGenerator.cs
index 6a9f8e99..af868c89 100644
--- a/src/ProtoGen/RepeatedMessageFieldGenerator.cs
+++ b/src/ProtoGen/RepeatedMessageFieldGenerator.cs
@@ -28,7 +28,8 @@ namespace Google.ProtocolBuffers.ProtoGen {
public void GenerateBuilderMembers(TextGenerator writer) {
// Note: We can return the original list here, because we make it unmodifiable when we build
- writer.WriteLine("public scg::IList<{0}> {1}List {{", TypeName, PropertyName);
+ // We return it via IPopsicleList so that collection initializers work more pleasantly.
+ writer.WriteLine("public pbc::IPopsicleList<{0}> {1}List {{", TypeName, PropertyName);
writer.WriteLine(" get {{ return result.{0}_; }}", Name);
writer.WriteLine("}");
writer.WriteLine("public int {0}Count {{", PropertyName);
diff --git a/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs b/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs
index 09e9fa08..dd1675f8 100644
--- a/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs
+++ b/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs
@@ -34,8 +34,9 @@ namespace Google.ProtocolBuffers.ProtoGen {
public void GenerateBuilderMembers(TextGenerator writer) {
// Note: We can return the original list here, because we make it unmodifiable when we build
+ // We return it via IPopsicleList so that collection initializers work more pleasantly.
AddClsComplianceCheck(writer);
- writer.WriteLine("public scg::IList<{0}> {1}List {{", TypeName, PropertyName);
+ writer.WriteLine("public pbc::IPopsicleList<{0}> {1}List {{", TypeName, PropertyName);
writer.WriteLine(" get {{ return result.{0}_; }}", Name);
writer.WriteLine("}");
writer.WriteLine("public int {0}Count {{", PropertyName);