pub trait InputPlugin: Send + 'static {
// Required methods
fn metadata(&self) -> PluginMetadata;
fn compatibility(&self) -> InputPluginCompatibility;
fn initialize(
&mut self,
context: &mut InputPluginContext<'_>,
) -> PluginResult;
// Provided methods
fn device_active(
&mut self,
_context: &mut InputPluginContext<'_>,
_device: InputDeviceId,
_active: bool,
) { ... }
fn next_input_event(
&mut self,
_context: &mut InputPluginContext<'_>,
_request: InputEventRequest,
) -> Option<InputEvent> { ... }
fn shutdown(&mut self, _context: &mut InputPluginContext<'_>) { ... }
}Expand description
Application-facing lifecycle for one SCS input plugin.
Required Methods§
Sourcefn metadata(&self) -> PluginMetadata
fn metadata(&self) -> PluginMetadata
Stable product identity used in runtime lifecycle logs.
Sourcefn compatibility(&self) -> InputPluginCompatibility
fn compatibility(&self) -> InputPluginCompatibility
Explicit Input API and per-game compatibility requirements.
Sourcefn initialize(&mut self, context: &mut InputPluginContext<'_>) -> PluginResult
fn initialize(&mut self, context: &mut InputPluginContext<'_>) -> PluginResult
Declares devices and initializes plugin-owned input state.
§Errors
Implementations may return PluginError to reject configuration or
propagate a device-declaration failure before SCS registration begins.
Provided Methods§
Sourcefn device_active(
&mut self,
_context: &mut InputPluginContext<'_>,
_device: InputDeviceId,
_active: bool,
)
fn device_active( &mut self, _context: &mut InputPluginContext<'_>, _device: InputDeviceId, _active: bool, )
Receives an optional activation or deactivation notification.
Sourcefn next_input_event(
&mut self,
_context: &mut InputPluginContext<'_>,
_request: InputEventRequest,
) -> Option<InputEvent>
fn next_input_event( &mut self, _context: &mut InputPluginContext<'_>, _request: InputEventRequest, ) -> Option<InputEvent>
Returns the next event for the polled device, or None when the current
frame has no more events.
Sourcefn shutdown(&mut self, _context: &mut InputPluginContext<'_>)
fn shutdown(&mut self, _context: &mut InputPluginContext<'_>)
Releases plugin-owned resources after SCS has unregistered all devices.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".