@@ -34,7 +34,8 @@ import '../api.dart'
34
34
SafetySetting,
35
35
SerializationStrategy,
36
36
UsageMetadata,
37
- createUsageMetadata;
37
+ createUsageMetadata,
38
+ parseUsageMetadata;
38
39
import '../content.dart'
39
40
show Content, FunctionCall, InlineDataPart, Part, TextPart;
40
41
import '../error.dart' ;
@@ -118,7 +119,7 @@ final class DeveloperSerialization implements SerializationStrategy {
118
119
};
119
120
final usageMedata = switch (jsonObject) {
120
121
{'usageMetadata' : final usageMetadata? } =>
121
- _parseUsageMetadata (usageMetadata),
122
+ parseUsageMetadata (usageMetadata),
122
123
_ => null ,
123
124
};
124
125
return GenerateContentResponse (candidates, promptFeedback,
@@ -232,72 +233,6 @@ PromptFeedback _parsePromptFeedback(Object jsonObject) {
232
233
};
233
234
}
234
235
235
- UsageMetadata _parseUsageMetadata (Object jsonObject) {
236
- if (jsonObject is ! Map <String , Object ?>) {
237
- throw unhandledFormat ('UsageMetadata' , jsonObject);
238
- }
239
- final promptTokenCount = switch (jsonObject) {
240
- {'promptTokenCount' : final int promptTokenCount} => promptTokenCount,
241
- _ => null ,
242
- };
243
- final candidatesTokenCount = switch (jsonObject) {
244
- {'candidatesTokenCount' : final int candidatesTokenCount} =>
245
- candidatesTokenCount,
246
- _ => null ,
247
- };
248
- final totalTokenCount = switch (jsonObject) {
249
- {'totalTokenCount' : final int totalTokenCount} => totalTokenCount,
250
- _ => null ,
251
- };
252
- final thoughtsTokenCount = switch (jsonObject) {
253
- {'thoughtsTokenCount' : final int thoughtsTokenCount} => thoughtsTokenCount,
254
- _ => null ,
255
- };
256
- final promptTokensDetails = switch (jsonObject) {
257
- {'promptTokensDetails' : final List <Object ?> promptTokensDetails} =>
258
- promptTokensDetails.map (_parseModalityTokenCount).toList (),
259
- _ => null ,
260
- };
261
- final candidatesTokensDetails = switch (jsonObject) {
262
- {'candidatesTokensDetails' : final List <Object ?> candidatesTokensDetails} =>
263
- candidatesTokensDetails.map (_parseModalityTokenCount).toList (),
264
- _ => null ,
265
- };
266
- return createUsageMetadata (
267
- promptTokenCount: promptTokenCount,
268
- candidatesTokenCount: candidatesTokenCount,
269
- totalTokenCount: totalTokenCount,
270
- thoughtsTokenCount: thoughtsTokenCount,
271
- promptTokensDetails: promptTokensDetails,
272
- candidatesTokensDetails: candidatesTokensDetails,
273
- );
274
- }
275
-
276
- ModalityTokenCount _parseModalityTokenCount (Object ? jsonObject) {
277
- if (jsonObject is ! Map ) {
278
- throw unhandledFormat ('ModalityTokenCount' , jsonObject);
279
- }
280
- final modality = _parseContentModality (jsonObject['modality' ]);
281
-
282
- if (jsonObject.containsKey ('tokenCount' )) {
283
- return ModalityTokenCount (modality, jsonObject['tokenCount' ] as int );
284
- } else {
285
- return ModalityTokenCount (modality, 0 );
286
- }
287
- }
288
-
289
- ContentModality _parseContentModality (Object jsonObject) {
290
- return switch (jsonObject) {
291
- 'MODALITY_UNSPECIFIED' => ContentModality .unspecified,
292
- 'TEXT' => ContentModality .text,
293
- 'IMAGE' => ContentModality .image,
294
- 'VIDEO' => ContentModality .video,
295
- 'AUDIO' => ContentModality .audio,
296
- 'DOCUMENT' => ContentModality .document,
297
- _ => throw unhandledFormat ('ContentModality' , jsonObject),
298
- };
299
- }
300
-
301
236
SafetyRating _parseSafetyRating (Object ? jsonObject) {
302
237
return switch (jsonObject) {
303
238
{
0 commit comments