def UnionFieldFromMojom(self, mojom_field):
        """Translates a mojom_types_mojom.UnionField to a module.UnionField.

    Args:
      mojom_field: {mojom_types_mojom.UnionField} to be translated.

    Returns:
      {module.UnionField} translated from mojom_field.
    """
        union_field = module.UnionField()
        self.PopulateCommonFieldValues(union_field, mojom_field)
        union_field.ordinal = self.OrdinalFromMojom(mojom_field)
        return union_field
def _UnionField(module, parsed_field, union):
    """
  Args:
    module: {mojom.Module} Module currently being constructed.
    parsed_field: {ast.UnionField} Parsed union field.
    union: {mojom.Union} Union this fields belong to.

  Returns:
    {mojom.UnionField} AST union.
  """
    field = mojom.UnionField()
    field.mojom_name = parsed_field.mojom_name
    field.kind = _Kind(module.kinds, _MapKind(parsed_field.typename),
                       (module.mojom_namespace, union.mojom_name))
    field.ordinal = parsed_field.ordinal.value if parsed_field.ordinal else None
    field.default = _FixupExpression(
        module, None, (module.mojom_namespace, union.mojom_name), field.kind)
    field.attributes = _AttributeListToDict(parsed_field.attribute_list)
    return field
Exemple #3
0
    def UnionFieldFromMojom(self, mojom_field):
        """Translates a fidl_types_fidl.UnionField to a module.UnionField.

    Args:
      mojom_field: {fidl_types_fidl.UnionField} to be translated.

    Returns:
      {module.UnionField} translated from mojom_field.
    """
        union_field = module.UnionField()
        self.PopulateCommonFieldValues(union_field, mojom_field)
        # The |ordinal| attribute of |union_field| contains the field's tag
        # as computed by the Mojom front-end.
        union_field.ordinal = mojom_field.tag
        # The |declared_tag| field is populated only if the user explicitly
        # specified a tag for the field in the .mojom file and as such is not
        # defined for every field. If defined it is equal to the |ordinal|
        # attribute. Currently no code generators are consuming this data.
        union_field.declared_tag = self.OrdinalFromMojom(mojom_field)
        # The declaration_order field preserves the index of the field in
        # declaration order in the .mojom file.
        union_field.declaration_order = mojom_field.decl_data.declaration_order
        return union_field
Exemple #4
0
def UnionFieldFromData(module, data, union):
    field = mojom.UnionField()
    PopulateField(field, module, data, union)
    return field