declList
Returns a slice of pointers to public declarations of a namespace.
Function parameters
Parameters
- Namespace:type
- Decl:type
Functions in this namespace
Functions
- stringToEnum
- Returns the variant of an enum type, `T`, which is named `str`, or `null` if no such variant exists.
- alignment
- Returns the alignment of type T.
- Child
- Given a parameterized type (array, vector, pointer, optional), returns the "child type".
- Elem
- Given a "memory span" type (array, slice, vector, or pointer to such), returns the "element type".
- sentinel
- Given a type which can have a sentinel e.g.
- Sentinel
- Given a "memory span" type, returns the same type except with the given sentinel value.
- declarations
- Instead of this function, prefer to use e.g.
- tags
- Given an enum or error set type, returns a pointer to an array containing all tags for that
- FieldEnum
- Returns an enum with a variant named after each field of `T`.
- activeTag
- Returns the active tag of a tagged union
- TagPayloadByName
- Deprecated: Use @FieldType(U, tag_name)
- TagPayload
- Deprecated: Use @FieldType(U, @tagName(tag))
- eql
- Compares two of any type for equality.
- intToEnum
- Deprecated: use `std.enums.fromInt` instead and handle null instead of an error.
- fieldIndex
- Given a type and a name, return the field index according to source order.
- declList
- Returns a slice of pointers to public declarations of a namespace.
- ArgsTuple
- For a given function type, returns a tuple type which fields will
- Tuple
- For a given anonymous list of types, returns a new tuple type
- isError
- Returns whether `error_union` contains an error.
- hasFn
- Returns true if a type has a namespace and the namespace contains `name`;
- hasMethod
- Returns true if a type has a `name` method; `false` otherwise.
- hasUniqueRepresentation
- True if every value of the type `T` has a unique bit pattern representing it.
Error sets in this namespace
Error Sets
- IntToEnumError
- Deprecated: use `std.enums.fromInt` instead and handle null.
Source
Implementation
pub fn declList(comptime Namespace: type, comptime Decl: type) []const *const Decl {
const S = struct {
fn declNameLessThan(context: void, lhs: *const Decl, rhs: *const Decl) bool {
_ = context;
return mem.lessThan(u8, lhs.name, rhs.name);
}
};
comptime {
const decls = declarations(Namespace);
var array: [decls.len]*const Decl = undefined;
for (decls, 0..) |decl, i| {
array[i] = &@field(Namespace, decl.name);
}
mem.sort(*const Decl, &array, {}, S.declNameLessThan);
return &array;
}
}