Package ghidra.app.util.bin.format.golang.rtti.types

# Class GoBaseType

java.lang.Object
ghidra.app.util.bin.format.golang.rtti.types.GoBaseType

All Implemented Interfaces:
  `StructureVerifier`

public class GoBaseType extends Object implements StructureVerifier
Represents the fundamental Go rtti type information.

The in-memory instance will typically be part of a specialized type structure, depending on the 'kind' of this type.

Additionally, there can be an `GoUncommonType` structure immediately after this type, if the uncommon bit is set in tflag.

     struct specialized_type { basetype_struct; (various_fields)* } struct uncommon;

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GoBaseType()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Set<GoTypeFlag>`
  `getFlags()`
  Returns the `GoTypeFlag`s assigned to this type definition.
  `GoName`
  `getGoName()`
  Returns name of this type, as a `GoName`.
  `GoKind`
  `getKind()`
  Returns the `GoKind` enum assigned to this type definition.
  `String`
  `getName()`
  Returns the name of this type.
  `GoType`
  `getPtrToThis()`
  Returns reference to the `GoType` that represents a pointer to this type.
  `long`
  `getSize()`
  Returns the size of the type being defined by this structure.
  `int`
  `getTflag()`
  Returns the raw flag value.
  `boolean`
  `hasUncommonType()`
  Returns true if this type definition's flags indicate there is a following GoUncommon structure.
  `boolean`
  `isValid()`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### GoBaseType

    public GoBaseType()

- ## Method Details

  - ### getSize

    public long getSize()
    Returns the size of the type being defined by this structure.
    Returns:
      the size of the type being defined by this structure

  - ### getKind

    public GoKind getKind()
    Returns the `GoKind` enum assigned to this type definition.
    Returns:
      the `GoKind` enum assigned to this type definition

  - ### getFlags

    public Set<GoTypeFlag> getFlags()
    Returns the `GoTypeFlag`s assigned to this type definition.
    Returns:
      the `GoTypeFlag`s assigned to this type definition

  - ### getTflag

    public int getTflag()
    Returns the raw flag value.
    Returns:
      the raw flag value

  - ### hasUncommonType

    public boolean hasUncommonType()
    Returns true if this type definition's flags indicate there is a following GoUncommon structure.
    Returns:
      true if this type definition's flags indicate there is a following GoUncommon structure

  - ### getGoName

    public GoName getGoName() throws IOException
    Returns name of this type, as a `GoName`.
    Returns:
      name of this type, as a `GoName`
    Throws:
      `IOException` - if error reading data

  - ### getName

    public String getName()
    Returns the name of this type.
    Returns:
      the name of this type

  - ### getPtrToThis

    public GoType getPtrToThis() throws IOException
    Returns reference to the `GoType` that represents a pointer to this type.
    Returns:
      reference to the `GoType` that represents a pointer to this type
    Throws:
      `IOException` - if error reading

  - ### isValid

    public boolean isValid()
    Specified by:
      `isValid` in interface `StructureVerifier`