func translateDeclarationData(d *mojom.DeclarationData) *mojom_types.DeclarationData { declData := mojom_types.DeclarationData{} // attributes field if d.Attributes() != nil { declData.Attributes = new([]mojom_types.Attribute) for _, attr := range d.Attributes().List { *(declData.Attributes) = append(*(declData.Attributes), translateMojomAttribute(&attr)) } } // min_version field // TODO(rudominer) Eliminate the min_version field from struct DeclarationData // short_name field declData.ShortName = stringPointer(d.SimpleName()) // full_identifier field switch declaredObject := d.DeclaredObject().(type) { // We do not serialize the fully-qualified-name for objects that only exist // as children of their container objects and are not independently // referenceable. case *mojom.StructField, *mojom.MojomMethod: case *mojom.MojomStruct: switch declaredObject.StructType() { case mojom.StructTypeRegular: declData.FullIdentifier = stringPointer(d.FullyQualifiedName()) } default: declData.FullIdentifier = stringPointer(d.FullyQualifiedName()) } // declared_ordinal field if d.DeclaredOrdinal() < 0 { declData.DeclaredOrdinal = -1 } else { declData.DeclaredOrdinal = int32(d.DeclaredOrdinal()) } // declaration_order // TODO(rudominer) DeclarationOrder is currently not populated. declData.DeclarationOrder = -1 // container_type_key containingType := d.ContainingType() if containingType != nil { switch d.DeclaredObject().(type) { // We do not serialize the |container_type_key| field for objects that only exist // as children of their container objects and are not independently // referenceable. case *mojom.StructField, *mojom.MojomMethod: // We do not serialize the |container_type_key| field for an EnumValue // because the EnumValue already has the type_key of the Enum // in a different field. case *mojom.EnumValue: default: declData.ContainerTypeKey = stringPointer(containingType.TypeKey()) } } // source_file_info declData.SourceFileInfo = new(mojom_types.SourceFileInfo) declData.SourceFileInfo.FileName = d.OwningFile().CanonicalFileName if EmitLineAndColumnNumbers { declData.SourceFileInfo.LineNumber = d.LineNumber() declData.SourceFileInfo.ColumnNumber = d.ColumnNumber() } return &declData }
func translateDeclarationData(d *mojom.DeclarationData) *mojom_types.DeclarationData { declData := mojom_types.DeclarationData{} // attributes field if d.Attributes() != nil { declData.Attributes = new([]mojom_types.Attribute) for _, attr := range d.Attributes().List { *(declData.Attributes) = append(*(declData.Attributes), translateMojomAttribute(&attr)) } } // min_version field // TODO(rudominer) Eliminate the min_version field from struct DeclarationData // short_name field declData.ShortName = stringPointer(d.SimpleName()) // full_identifier field declData.FullIdentifier = stringPointer(d.FullyQualifiedName()) // declared_ordinal field if d.DeclaredOrdinal() < 0 { declData.DeclaredOrdinal = -1 } else { declData.DeclaredOrdinal = int32(d.DeclaredOrdinal()) } // declaration_order // TODO(rudominer) DeclarationOrder is currently not populated. declData.DeclarationOrder = -1 // container_type_key containingType := d.ContainingType() if containingType != nil { switch containingType.(type) { case *mojom.MojomEnum: // We do not write the |container_type_key| field for an EnumValue // because the EnumValue already has the type_key of the Enum // in a different field. break default: declData.ContainerTypeKey = stringPointer(containingType.TypeKey()) } } // source_file_info declData.SourceFileInfo = new(mojom_types.SourceFileInfo) declData.SourceFileInfo.FileName = d.OwningFile().CanonicalFileName if EmitLineAndColumnNumbers { declData.SourceFileInfo.LineNumber = d.LineNumber() declData.SourceFileInfo.ColumnNumber = d.ColumnNumber() } return &declData }