class Bindgen::Parser::Class

Overview

Describes a C++ class, struct, or union.

Included Modules

Defined in:

bindgen/parser/class.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(pull : JSON::PullParser) #

[View source]
def self.new(name : String, byte_size : Int32 = 0, has_default_constructor : Bool = false, has_copy_constructor : Bool = false, type_kind : Bindgen::Parser::TypeKind = TypeKind::Class, abstract __arg0 : Bool = false, 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) #

[View source]

Instance Method Detail

def abstract? : Bool #

[View source]

Visibility of the class. Default is public, but some generated Crystal classes may be private.


[View source]
def anonymous? : Bool #

[View source]
def as_type(pointer = 1, reference = false, const = false) : Type #

Returns a Type referencing this class.


[View source]
def bases : Array(BaseClass) #

Direct bases of the class.


[View source]
def binding_name : String #

The name of the class as part of binding methods.


[View source]
def byte_size : Int32 #

[View source]
def class?(*args, **options) #

Is this a class, struct, or C union?


[View source]
def class?(*args, **options, &) #

Is this a class, struct, or C union?


[View source]
def cpp_union?(*args, **options) #

Is this a class, struct, or C union?


[View source]
def cpp_union?(*args, **options, &) #

Is this a class, struct, or C union?


[View source]
def destructible? : Bool #

[View source]
def destructor_method : Method #

Constructs a method destroying an instance of this class.


[View source]
def destructor_name : String #

The full binding function name of the destructor.


[View source]
def each_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.


[View source]
def fields : Array(Field) #

Data members defined in the class, both static and non-static.


[View source]
def find_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.


[View source]
def has_copy_constructor? : Bool #

[View source]
def has_default_constructor? : Bool #

[View source]
def has_virtual_methods? #

Does this class have any virtual methods?


[View source]
def methods : Array(Method) #

Methods defined in the class.


[View source]
def name : String #

Fully qualified name of the class.


[View source]
def private?(*args, **options) #

[View source]
def private?(*args, **options, &) #

[View source]
def protected?(*args, **options) #

[View source]
def protected?(*args, **options, &) #

[View source]
def public?(*args, **options) #

[View source]
def public?(*args, **options, &) #

[View source]
def struct?(*args, **options) #

Is this a class, struct, or C union?


[View source]
def struct?(*args, **options, &) #

Is this a class, struct, or C union?


[View source]
def type_kind : TypeKind #

[View source]
def wrap_methods : Array(Method) #

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.


[View source]
def wrappable_methods #

Non-yielding version of #each_wrappable_method


[View source]