Struct Function

Source
pub struct Function {
    pub name: &'static str,
    pub number: u64,
    pub arg_types: Vec<TypeId>,
    pub return_type: TypeId,
    pub dependencies: Option<Vec<InterplugRequest>>,
}
Expand description

Structure representing main characteristics of a function needed for the program using a plugin, which implements it

A Function object contains

  • function name
  • its id number to be used when calling the function
  • argument TypeIds it takes
  • its return TypeId

Fields§

§name: &'static str

Function name, as a reference to a static string. Mainly used to give user the ability to choose the function they want to use

§number: u64

Function ID, used to call this function

Should always be the same for same functions in the newer releases, unless a new plugin version is submitted

§arg_types: Vec<TypeId>

TypeIds of arguments, this function expects to find inside of a Vector of Any trait implementors

See std::any::Any documentation to find out more about storing an Any trait implementor and getting back from a Box<dyn Any>

§return_type: TypeId

The TypeId of the returned Any trait implementor

See std::any::Any documentation to find out more about storing an Any trait implementor and getting back from a Box<dyn Any>

§dependencies: Option<Vec<InterplugRequest>>

If the function can not work without some optional interplug requests fulfilled, they must be included in this field when providing the function to the program that is using the plugin, so it knows if this function is available in the current setup or not.

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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 T
where 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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.