@@ -37,8 +37,6 @@ final Serializers serializers =
3737 (_$serializers.toBuilder ()
3838 ..add (identityAssetIdSerializer)
3939 ..add (DigestSerializer ())
40- ..add (MapSerializer ())
41- ..add (SetSerializer ())
4240 ..addBuilderFactory (
4341 const FullType (Set , [FullType (AssetId )]),
4442 () => < AssetId > {},
@@ -119,141 +117,3 @@ class DigestSerializer implements PrimitiveSerializer<Digest> {
119117 FullType specifiedType = FullType .unspecified,
120118 }) => base64.encode (object.bytes);
121119}
122-
123- // TODO(davidmorgan): this is a fork of `BuiltMapSerializer` from `built_value`
124- // adapted for SDK maps, upstream it.
125- class MapSerializer implements StructuredSerializer <Map > {
126- final bool structured = true ;
127- @override
128- final Iterable <Type > types = BuiltList <Type >([
129- Map ,
130- < Object , Object > {}.runtimeType,
131- ]);
132- @override
133- final String wireName = 'map' ;
134-
135- @override
136- Iterable <Object ?> serialize (
137- Serializers serializers,
138- Map builtMap, {
139- FullType specifiedType = FullType .unspecified,
140- }) {
141- var isUnderspecified =
142- specifiedType.isUnspecified || specifiedType.parameters.isEmpty;
143- if (! isUnderspecified) serializers.expectBuilder (specifiedType);
144-
145- var keyType =
146- specifiedType.parameters.isEmpty
147- ? FullType .unspecified
148- : specifiedType.parameters[0 ];
149- var valueType =
150- specifiedType.parameters.isEmpty
151- ? FullType .unspecified
152- : specifiedType.parameters[1 ];
153-
154- var result = < Object ? > [];
155- for (var key in builtMap.keys) {
156- result.add (serializers.serialize (key, specifiedType: keyType));
157- final value = builtMap[key];
158- result.add (serializers.serialize (value, specifiedType: valueType));
159- }
160- return result;
161- }
162-
163- @override
164- Map deserialize (
165- Serializers serializers,
166- Iterable serialized, {
167- FullType specifiedType = FullType .unspecified,
168- }) {
169- var isUnderspecified =
170- specifiedType.isUnspecified || specifiedType.parameters.isEmpty;
171-
172- var keyType =
173- specifiedType.parameters.isEmpty
174- ? FullType .unspecified
175- : specifiedType.parameters[0 ];
176- var valueType =
177- specifiedType.parameters.isEmpty
178- ? FullType .unspecified
179- : specifiedType.parameters[1 ];
180-
181- var result =
182- isUnderspecified
183- ? < Object , Object > {}
184- : serializers.newBuilder (specifiedType) as Map ;
185-
186- if (serialized.length.isOdd) {
187- throw ArgumentError ('odd length' );
188- }
189-
190- for (var i = 0 ; i != serialized.length; i += 2 ) {
191- final key = serializers.deserialize (
192- serialized.elementAt (i),
193- specifiedType: keyType,
194- );
195- final value = serializers.deserialize (
196- serialized.elementAt (i + 1 ),
197- specifiedType: valueType,
198- );
199- result[key] = value;
200- }
201-
202- return result;
203- }
204- }
205-
206- // TODO(davidmorgan): this is a fork of `BuiltSetSerializer` from `built_value`
207- // adapted for SDK sets, upstream it.
208- class SetSerializer implements StructuredSerializer <Set > {
209- final bool structured = true ;
210- @override
211- final Iterable <Type > types = BuiltList <Type >([Set , < Object > {}.runtimeType]);
212- @override
213- final String wireName = 'set' ;
214-
215- @override
216- Iterable <Object ?> serialize (
217- Serializers serializers,
218- Set builtSet, {
219- FullType specifiedType = FullType .unspecified,
220- }) {
221- var isUnderspecified =
222- specifiedType.isUnspecified || specifiedType.parameters.isEmpty;
223- if (! isUnderspecified) serializers.expectBuilder (specifiedType);
224-
225- var elementType =
226- specifiedType.parameters.isEmpty
227- ? FullType .unspecified
228- : specifiedType.parameters[0 ];
229-
230- return builtSet.map (
231- (item) => serializers.serialize (item, specifiedType: elementType),
232- );
233- }
234-
235- @override
236- Set deserialize (
237- Serializers serializers,
238- Iterable serialized, {
239- FullType specifiedType = FullType .unspecified,
240- }) {
241- var isUnderspecified =
242- specifiedType.isUnspecified || specifiedType.parameters.isEmpty;
243-
244- var elementType =
245- specifiedType.parameters.isEmpty
246- ? FullType .unspecified
247- : specifiedType.parameters[0 ];
248- var result =
249- isUnderspecified
250- ? < Object > {}
251- : serializers.newBuilder (specifiedType) as Set ;
252-
253- for (final item in serialized) {
254- result.add (serializers.deserialize (item, specifiedType: elementType));
255- }
256-
257- return result;
258- }
259- }
0 commit comments