pub struct KotlinCodeOracle;

Implementations§

source§

impl KotlinCodeOracle

source

fn find(&self, type_: &Type) -> Box<dyn CodeType>

source

fn class_name(&self, ci: &ComponentInterface, nm: &str) -> String

Get the idiomatic Kotlin rendering of a class name (for enums, records, errors, etc).

source

fn convert_error_suffix(&self, nm: &str) -> String

source

fn fn_name(&self, nm: &str) -> String

Get the idiomatic Kotlin rendering of a function name.

source

fn var_name(&self, nm: &str) -> String

Get the idiomatic Kotlin rendering of a variable name.

source

pub fn var_name_raw(&self, nm: &str) -> String

var_name without the backticks. Useful for using in @Structure.FieldOrder.

source

fn enum_variant_name(&self, nm: &str) -> String

Get the idiomatic Kotlin rendering of an individual enum variant.

source

fn ffi_callback_name(&self, nm: &str) -> String

Get the idiomatic Kotlin rendering of an FFI callback function name

source

fn ffi_struct_name(&self, nm: &str) -> String

Get the idiomatic Kotlin rendering of an FFI struct name

source

fn ffi_type_label_by_value(&self, ffi_type: &FfiType) -> String

source

fn ffi_type_label_for_ffi_struct(&self, ffi_type: &FfiType) -> String

FFI type name to use inside structs

The main requirement here is that all types must have default values or else the struct won’t work in some JNA contexts.

source

fn ffi_default_value(&self, ffi_type: &FfiType) -> String

Default values for FFI

This is used to:

  • Set a default return value for error results
  • Set a default for structs, which JNA sometimes requires
source

fn ffi_type_label_by_reference(&self, ffi_type: &FfiType) -> String

source

fn ffi_type_label(&self, ffi_type: &FfiType) -> String

source

fn object_names( &self, ci: &ComponentInterface, obj: &Object ) -> (String, String)

Get the name of the interface and class name for an object.

If we support callback interfaces, the interface name is the object name, and the class name is derived from that. Otherwise, the class name is the object name and the interface name is derived from that.

This split determines what types FfiConverter.lower() inputs. If we support callback interfaces, lower must lower anything that implements the interface. If not, then lower only lowers the concrete class.

Trait Implementations§

source§

impl Clone for KotlinCodeOracle

source§

fn clone(&self) -> KotlinCodeOracle

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.