Skip to content

CustomAttribute

Raymond Chen edited this page Mar 30, 2019 · 1 revision

A xlang::meta::reader::CustomAttribute structure represents a custom attribute.

Since it is a row in a database table, all row operations are available, although in practice you won't use them directly, preferring to use the accessors defined here.

Some methods return a CustomAttribute that may be empty, as reported by operator bool(). All method calls are invalid on an empty CustomAttribute. (Except for operator bool(), of course.)

Methods

Parent

xlang::meta::reader::coded_index<HasCustomAttribute> Parent() const;

Returns a coded_index<HasCustomAttribute> that identifies the entity to which this custom attribute applies. This is column 0 in the database schema.

Complexity: O(1)

Exceptions: Throws std::invalid_argument if the database is corrupted.

Type

xlang::meta::reader::coded_index<CustomAttributeType> Type() const;

Returns a coded_index<CustomAttributeType> that identifies what kind of custom attribute this is. This is column 1 in the database schema.

Complexity: O(1)

Exceptions: Throws std::invalid_argument if the database is corrupted.

Value

xlang::meta::reader::CustomAttributeSig Value() const;

Returns the value of the custom attribute.

Complexity: O(n) where n is the "size" of the attribute's value. This is the information required to represent the attribute, including the name of the attribute and its parameters.

Exceptions: Throws std::invalid_argument if the database is corrupted. Throws std::bad_alloc if out of memory.

TypeNamespaceAndName

std::pair<std::string_view const, std::string_view>
TypeNamespaceAndName() const;

Returns the namespace and name of the type of the custom attribute. This parses the Type() into a namespace and name.

Complexity: O(1).

Exceptions: Throws std::invalid_argument if the database is corrupted.

Clone this wiki locally