Crate kpal_plugin

Source
Expand description

The KPAL plugin crate provides tools to write your own KPAL plugins.

See the examples folder for ideas on how to implement the datatypes and methods defined in this library.

Modules§

error_codes
Constants that indicate specific error codes that a plugin can return.

Macros§

declare_plugin
Creates the required symbols for a plugin library.
multimap
Create a MultiMap from a list of key-value tuples

Structs§

Attribute
A single piece of information that partly determines the state of a plugin.
MultiMap
Plugin
A Plugin combines the data that determines its state and with its functionality.
PluginData
An opaque struct that contains the state of an individual plugin.
PluginUninitializedError
An error that is raised when a plugin is assumed to be in its run phase but it has not yet been initialized.
VTable
A table of function pointers that comprise the plugin API for the foreign function interface.
ValueConversionError
An error type that represents a failure to convert a Val to a Value.

Enums§

Callbacks
Callback functions that communicate with the hardware when an attribute is read or set.
Val
A wrapper type for transporting Values through the plugin API.
Value
An owned value of an attribute.

Constants§

ATTRIBUTE_PRE_INIT_FALSE
Indicates that an attribute may not be set before plugin initialization.
ATTRIBUTE_PRE_INIT_TRUE
Indicates that an attribute may be set before plugin initialization.
INIT_PHASE
Indicates that the init phase callbacks should be used when interacting with a plugin.
RUN_PHASE
Indicates that the run phase callbacks should be used when interacting with a plugin.

Statics§

ERRORS

Traits§

PluginAPI
The set of functions that must be implemented by a plugin.
PluginError
The set of functions that must be implemented by a plugin library’s main error type.

Functions§

attribute_count
Returns the number of attributes of the plugin.
attribute_ids
Writes the plugin’s attribute IDs to a buffer that is provided by the caller.
attribute_name
Writes the name of an attribute to a buffer that is provided by the caller.
attribute_pre_init
Indicates whether an attribute may be set before initialization.
attribute_value
Writes the value of an attribute to a Value instance that is provided by the caller.
copy_string
Copies a string of values of a primitive data type to a buffer.
error_message_ns
Returns an error message to the daemon given an error code.
plugin_free
Frees the memory associated with the plugin’s data.
plugin_init
Initializes a plugin.
set_attribute_value
Sets the value of an attribute.

Type Aliases§

Attributes
The type signature of the collection of attributes that is owned by the plugin.
KpalLibraryInit
The type signature of the function that initializes a library.
KpalPluginInit
The type signature of the function that returns a new plugin instance.
Phase
Determines which callbacks to use by indicating the current lifecycle phase of the plugin when getting and setting attributes.