Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1802)

Side by Side Diff: mojom/mojom_parser/serialization/serialization.go

Issue 1433023003: New Mojom parser: Fix serialization of arrays and maps. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Upadates the sha1 of the parser binary. Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package serialization 5 package serialization
6 6
7 import ( 7 import (
8 "fmt" 8 "fmt"
9 "mojo/public/go/bindings" 9 "mojo/public/go/bindings"
10 "mojom/mojom_parser/generated/mojom_files" 10 "mojom/mojom_parser/generated/mojom_files"
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 301
302 func translateTypeRef(typeRef mojom.TypeRef) mojom_types.Type { 302 func translateTypeRef(typeRef mojom.TypeRef) mojom_types.Type {
303 switch t := typeRef.(type) { 303 switch t := typeRef.(type) {
304 case mojom.SimpleType: 304 case mojom.SimpleType:
305 return translateSimpleType(t) 305 return translateSimpleType(t)
306 case mojom.StringType: 306 case mojom.StringType:
307 return translateStringType(t) 307 return translateStringType(t)
308 case mojom.HandleTypeRef: 308 case mojom.HandleTypeRef:
309 return translateHandleType(t) 309 return translateHandleType(t)
310 case mojom.ArrayTypeRef: 310 case mojom.ArrayTypeRef:
311 return translateArrayType(&t)
312 case *mojom.ArrayTypeRef:
311 return translateArrayType(t) 313 return translateArrayType(t)
312 case mojom.MapTypeRef: 314 case mojom.MapTypeRef:
315 return translateMapType(&t)
316 case *mojom.MapTypeRef:
313 return translateMapType(t) 317 return translateMapType(t)
314 case *mojom.UserTypeRef: 318 case *mojom.UserTypeRef:
315 return translateUserTypeRef(t) 319 return translateUserTypeRef(t)
316 default: 320 default:
317 panic(fmt.Sprintf("Unexpected TypeRef type %T", t)) 321 panic(fmt.Sprintf("Unexpected TypeRef type %T", t))
318 } 322 }
319 } 323 }
320 324
321 func translateSimpleType(simpleType mojom.SimpleType) *mojom_types.TypeSimpleTyp e { 325 func translateSimpleType(simpleType mojom.SimpleType) *mojom_types.TypeSimpleTyp e {
322 var value mojom_types.SimpleType 326 var value mojom_types.SimpleType
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 case mojom.HandleKindDataPipeConsumer: 365 case mojom.HandleKindDataPipeConsumer:
362 kind = mojom_types.HandleType_Kind_DataPipeConsumer 366 kind = mojom_types.HandleType_Kind_DataPipeConsumer
363 case mojom.HandleKindDataPipeProducer: 367 case mojom.HandleKindDataPipeProducer:
364 kind = mojom_types.HandleType_Kind_DataPipeProducer 368 kind = mojom_types.HandleType_Kind_DataPipeProducer
365 case mojom.HandleKindSharedBuffer: 369 case mojom.HandleKindSharedBuffer:
366 kind = mojom_types.HandleType_Kind_SharedBuffer 370 kind = mojom_types.HandleType_Kind_SharedBuffer
367 } 371 }
368 return &mojom_types.TypeHandleType{mojom_types.HandleType{handleType.Nul lable(), kind}} 372 return &mojom_types.TypeHandleType{mojom_types.HandleType{handleType.Nul lable(), kind}}
369 } 373 }
370 374
371 func translateArrayType(arrayType mojom.ArrayTypeRef) *mojom_types.TypeArrayType { 375 func translateArrayType(arrayType *mojom.ArrayTypeRef) *mojom_types.TypeArrayTyp e {
372 return &mojom_types.TypeArrayType{mojom_types.ArrayType{ 376 return &mojom_types.TypeArrayType{mojom_types.ArrayType{
373 Nullable: arrayType.Nullable(), 377 Nullable: arrayType.Nullable(),
374 FixedLength: int32(arrayType.FixedLength()), 378 FixedLength: int32(arrayType.FixedLength()),
375 ElementType: translateTypeRef(arrayType.ElementType())}} 379 ElementType: translateTypeRef(arrayType.ElementType())}}
376 } 380 }
377 381
378 func translateMapType(mapType mojom.MapTypeRef) *mojom_types.TypeMapType { 382 func translateMapType(mapType *mojom.MapTypeRef) *mojom_types.TypeMapType {
379 return &mojom_types.TypeMapType{mojom_types.MapType{ 383 return &mojom_types.TypeMapType{mojom_types.MapType{
380 Nullable: mapType.Nullable(), 384 Nullable: mapType.Nullable(),
381 KeyType: translateTypeRef(mapType.KeyType()), 385 KeyType: translateTypeRef(mapType.KeyType()),
382 ValueType: translateTypeRef(mapType.ValueType())}} 386 ValueType: translateTypeRef(mapType.ValueType())}}
383 } 387 }
384 388
385 func translateUserTypeRef(userType *mojom.UserTypeRef) *mojom_types.TypeTypeRefe rence { 389 func translateUserTypeRef(userType *mojom.UserTypeRef) *mojom_types.TypeTypeRefe rence {
386 typeKey := stringPointer(userType.ResolvedType().TypeKey()) 390 typeKey := stringPointer(userType.ResolvedType().TypeKey())
387 identifier := stringPointer(userType.Identifier()) 391 identifier := stringPointer(userType.Identifier())
388 return &mojom_types.TypeTypeReference{mojom_types.TypeReference{ 392 return &mojom_types.TypeTypeReference{mojom_types.TypeReference{
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 558
555 // stringPointer is a convenience function for creating a pointer to a string wh ose value 559 // stringPointer is a convenience function for creating a pointer to a string wh ose value
556 // is the specified string. It may be used in situations where the compiler will 560 // is the specified string. It may be used in situations where the compiler will
557 // not allow you to take the address of a string value directly, such as the 561 // not allow you to take the address of a string value directly, such as the
558 // return value of a function. It is necessary to create pointers to strings bec ause 562 // return value of a function. It is necessary to create pointers to strings bec ause
559 // that is how the Mojom type |string?| (i.e. nullable string) is represented in 563 // that is how the Mojom type |string?| (i.e. nullable string) is represented in
560 // in the Mojom Go bindings. 564 // in the Mojom Go bindings.
561 func stringPointer(s string) *string { 565 func stringPointer(s string) *string {
562 return &s 566 return &s
563 } 567 }
OLDNEW
« no previous file with comments | « mojom/mojom_parser/bin/linux64/mojom_parser.sha1 ('k') | mojom/mojom_parser/serialization/serialization_test.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698