# Local types information and manipulation helpers

```
// Enum type information
class enum_type_data_t
{
  // tattr_enum, see TAENUM_... flags
  attribute taenum_bits;

  // enum member sizes (shift amount) and style, see BTE_... constants
  attribute bte;

  // number of enum members
  attribute member_cnt;

  // add enum constant
  success add_constant(string name, string name, uint64 value, string comment=nullptr);
};
```

// Get named local type TID // name - type name // returns: TID or BADADDR long get\_named\_type\_tid(string name);

// Get numbered local type TID // ord - type ordinal // returns: TID or BADADDR long get\_numbered\_type\_tid(long ord);

// create type enum // enum\_name - type name // ei - enum type data of type enum\_type\_data\_t // enum\_width - the width of a enum element, allowed values: 0 (unspecified),1,2,4,8 // sign - enum signess (any from TYPE\_SIGN\_... constants) // convert\_to\_bitmask - try convert enum to bitmask enum (0-false or 1-true) // enum\_cmt - enum type comment // returns: enum TID long create\_enum\_type( string enum\_name, object ei, long enum\_width, long sign, long convert\_to\_bitmask, string enum\_cmt=nullptr); // type signedness #define TYPE\_SIGN\_NO\_SIGN 0 // no sign, or unknown #define TYPE\_SIGN\_TYPE\_SIGNED 1 // signed type #define TYPE\_SIGN\_TYPE\_UNSIGNED 2 // unsigned type
