Lines Matching refs:extension
48 private static bool TryGetValue<TTarget>(ref ExtensionSet<TTarget> set, Extension extension, out IExtensionValue value) where TTarget : IExtendableMessage<TTarget>
55 return set.ValuesByNumber.TryGetValue(extension.FieldNumber, out value);
59 /// Gets the value of the specified extension
61 public static TValue Get<TTarget, TValue>(ref ExtensionSet<TTarget> set, Extension<TTarget, TValue> extension) where TTarget : IExtendableMessage<TTarget>
64 if (TryGetValue(ref set, extension, out value))
70 return extension.DefaultValue;
75 /// Gets the value of the specified repeated extension or null if it doesn't exist in this set
77 public static RepeatedField<TValue> Get<TTarget, TValue>(ref ExtensionSet<TTarget> set, RepeatedExtension<TTarget, TValue> extension) where TTarget : IExtendableMessage<TTarget>
80 if (TryGetValue(ref set, extension, out value))
91 /// Gets the value of the specified repeated extension, registering it if it doesn't exist
93 public static RepeatedField<TValue> GetOrInitialize<TTarget, TValue>(ref ExtensionSet<TTarget> set, RepeatedExtension<TTarget, TValue> extension) where TTarget : IExtendableMessage<TTarget>
98 value = extension.CreateValue();
100 set.ValuesByNumber.Add(extension.FieldNumber, value);
104 if (!set.ValuesByNumber.TryGetValue(extension.FieldNumber, out value))
106 value = extension.CreateValue();
107 set.ValuesByNumber.Add(extension.FieldNumber, value);
115 /// Sets the value of the specified extension. This will make a new instance of ExtensionSet if the set is null.
117 public static void Set<TTarget, TValue>(ref ExtensionSet<TTarget> set, Extension<TTarget, TValue> extension, TValue value) where TTarget : IExtendableMessage<TTarget>
124 extensionValue = extension.CreateValue();
126 set.ValuesByNumber.Add(extension.FieldNumber, extensionValue);
130 if (!set.ValuesByNumber.TryGetValue(extension.FieldNumber, out extensionValue))
132 extensionValue = extension.CreateValue();
133 set.ValuesByNumber.Add(extension.FieldNumber, extensionValue);
141 /// Gets whether the value of the specified extension is set
143 public static bool Has<TTarget, TValue>(ref ExtensionSet<TTarget> set, Extension<TTarget, TValue> extension) where TTarget : IExtendableMessage<TTarget>
146 return TryGetValue(ref set, extension, out value);
150 /// Clears the value of the specified extension
152 public static void Clear<TTarget, TValue>(ref ExtensionSet<TTarget> set, Extension<TTarget, TValue> extension) where TTarget : IExtendableMessage<TTarget>
158 set.ValuesByNumber.Remove(extension.FieldNumber);
166 /// Clears the value of the specified extension
168 public static void Clear<TTarget, TValue>(ref ExtensionSet<TTarget> set, RepeatedExtension<TTarget, TValue> extension) where TTarget : IExtendableMessage<TTarget>
174 set.ValuesByNumber.Remove(extension.FieldNumber);
204 Extension extension;
213 else if (ctx.ExtensionRegistry != null && ctx.ExtensionRegistry.ContainsInputField(ctx.LastTag, typeof(TTarget), out extension))
215 IExtensionValue value = extension.CreateValue();
218 set.ValuesByNumber.Add(extension.FieldNumber, value);
331 /// Calculates the size of this extension set
344 /// Writes the extension values in this set to the output stream
361 /// Writes the extension values in this set to the write context