Bindgen::Processor::ExternC
Inherits Bindgen::Processor::Base < Bindgen::Graph::Visitor < Reference < Object
Checks if a method require a C/C++ wrapper. If not, marks the method to bind directly to the target method instead of writing a "trampoline" wrapper in C++.
A method can be bound directly if all of these are true:
- It uses the C ABI (
extern "C") - No argument uses a
to_cppconverter - The return type doesn't use a
from_cppconverter
Additionally, these rules must be met:
- No calls for
CrystalBindingnorCppare set Graph::Method::EXPLICIT_BIND_TAGis not already set
If any of this is false, the method is left alone.
Constants
Log = ::Log.for(self)
Checks if a method require a C/C++ wrapper. If not, marks the method to bind directly to the target method instead of writing a "trampoline" wrapper in C++.
A method can be bound directly if all of these are true:
- It uses the C ABI (
extern "C") - No argument uses a
to_cppconverter - The return type doesn't use a
from_cppconverter
Additionally, these rules must be met:
- No calls for
CrystalBindingnorCppare set Graph::Method::EXPLICIT_BIND_TAGis not already set
If any of this is false, the method is left alone.
PLATFORM = Graph::Platform::Crystal