Describes a C++ class, struct, or union.
Constructors
new(name :
String, byte_size :
Int32 = 0, pack_alignment :
Int32 = 0, has_default_constructor :
Bool = false, has_copy_constructor :
Bool = false, has_user_declared_constructor :
Bool = false, type_kind :
Bindgen::Parser::TypeKind =
TypeKind::Class, abstract __arg0 :
Bool = false, final :
Bool = false, polymorphic :
Bool = false, trivially_copyable :
Bool = true, standard_layout :
Bool = true, anonymous :
Bool = false, destructible :
Bool = true, bases :
Array(
Bindgen::Parser::BaseClass) = [] of
BaseClass, fields :
Array(
Bindgen::Parser::Field) = [] of
Field, methods :
Array(
Bindgen::Parser::Method) = [] of
Method, access :
Bindgen::Parser::AccessSpecifier =
AccessSpecifier::Public, doc :
Nil |
String = nil)
SourceInstance methods
access
Visibility of the class. Default is public, but some generated Crystal
classes may be private.
Sourceas_type(pointer = 1, reference = false, const = false) : Type
Returns a Type referencing this class.
Sourcebases
Direct bases of the class.
Sourcebinding_name
The name of the class as part of binding methods.
Sourcebyte_size
Size of an instance of the class in memory.
Sourceclass?(*args, **options)
Is this a class, struct, or C union?
Sourceclass?(*args, **options, &)
Is this a class, struct, or C union?
Sourcecpp_union?(*args, **options)
Is this a class, struct, or C union?
Sourcecpp_union?(*args, **options, &)
Is this a class, struct, or C union?
Sourcedestructible?
Is this class publicly destructible?
Sourcedestructor_method
Constructs a method destroying an instance of this class.
Sourcedestructor_name
The full binding function name of the destructor.
Sourcedoc
Documentation comment from the C++ source, without comment markers.
Sourceeach_wrappable_method
Yields each wrappable method without any further processing.
Note: This method hard-codes which methods to ignore. If you're
wondering why a method doesn't even reach the graph in the first place,
look in here.
Sourcefields
Data members defined in the class, both static and non-static.
Sourcefinal?
Is this class final, so it can't be derived from?
Sourcefind_parent_method(method : Method) : Method | Nil
Assumes that method exists in a class inheriting from this class.
Tries to find a method in this class which is overriden by method.
The return type isn't compared, as an override may change it covariantly.
Sourcehas_copy_constructor?
Is the type copy-constructible?
Sourcehas_default_constructor?
Does the type have a default, argument-less constructor?
Sourcehas_user_declared_constructor?
Does the type declare any constructor itself? This includes defaulted
(= default) and deleted ones, which #methods can't tell: A defaulted
constructor is Method#builtin?, and a deleted one isn't listed.
Sourcehas_virtual_methods?
Does this class have any virtual methods?
Sourcemethods
Methods defined in the class.
Sourcename
Fully qualified name of the class.
Sourcepack_alignment
The alignment limit in bytes of packing that moves a member: 1 for
__attribute__((packed)), or N for #pragma pack(N). 0 if the class
isn't packed, or the packing doesn't change its layout.
Sourcepacked?
Are the members of this class packed without alignment?
Sourcepolymorphic?
Does the class declare or inherit a virtual method?
Sourceprivate?(*args, **options)
Sourceprivate?(*args, **options, &)
Sourceprotected?(*args, **options)
Sourceprotected?(*args, **options, &)
Sourcepublic?(*args, **options)
Sourcepublic?(*args, **options, &)
Sourcestandard_layout?
Is the class laid out like a C structure?
Sourcestruct?(*args, **options)
Is this a class, struct, or C union?
Sourcestruct?(*args, **options, &)
Is this a class, struct, or C union?
Sourcetrivially_copyable?
Can an instance be copied byte-wise, like a C structure?
Sourcetype_kind
The keyword used to declare this type (class, struct, or union).
Sourcewrap_methods
List of all wrappable-methods. This includes all Method#variants.
Methods which use Method#move_semantics? on any type are explicitly
removed.
Note: This is a memoized getter. Thus it's cheap to call it multiple
times.
Sourcewrappable_methods
Non-yielding version of #each_wrappable_method
Source