Skip to main content

Resource

Struct Resource 

Source
pub struct Resource { /* private fields */ }

Implementations§

Source§

impl Resource

Source

pub fn register_custom_action( &self, name: &str, action: Box<dyn CustomAction>, ) -> MaaResult<()>

Register a custom action implementation.

The action will be kept alive as long as it is registered in the Resource. Re-registering with the same name will drop the previous implementation.

Source

pub fn register_custom_recognition( &self, name: &str, reco: Box<dyn CustomRecognition>, ) -> MaaResult<()>

Register a custom recognition implementation.

The recognizer will be kept alive as long as it is registered in the Resource. Re-registering with the same name will drop the previous implementation.

Source§

impl Resource

Source

pub fn new() -> MaaResult<Self>

Create a new resource manager.

Source

pub unsafe fn from_raw(ptr: *mut MaaResource) -> MaaResult<Self>

Create a Resource from a raw pointer, taking ownership.

§Safety

The pointer must be valid and the caller transfers ownership to the Resource. The Resource will call MaaResourceDestroy when dropped.

Source

pub fn post_bundle(&self, path: &str) -> MaaResult<ResJob>

Load a resource bundle from the specified directory.

The bundle should contain pipeline definitions, images, and models.

Source

pub fn loaded(&self) -> bool

Check if resources have been loaded.

Source

pub fn clear(&self) -> MaaResult<()>

Clear all loaded resources.

Source

pub fn status(&self, id: MaaId) -> MaaStatus

Get the status of a loading operation.

Source

pub fn wait(&self, id: MaaId) -> MaaStatus

Wait for a loading operation to complete.

Source

pub fn raw(&self) -> *mut MaaResource

Get the raw resource handle.

Source

pub fn post_ocr_model(&self, path: &str) -> MaaResult<ResJob>

Load an OCR model from the specified directory.

Source

pub fn post_pipeline(&self, path: &str) -> MaaResult<ResJob>

Load additional pipeline definitions from the specified directory.

Source

pub fn post_image(&self, path: &str) -> MaaResult<ResJob>

Load image resources from the specified directory.

Source

pub fn override_pipeline(&self, pipeline_override: &str) -> MaaResult<()>

Override pipeline parameters with a JSON string.

Source

pub fn override_pipeline_json(&self, pipeline_override: &Value) -> MaaResult<()>

Override pipeline with JSON value.

Convenience method that accepts serde_json::Value for pipeline overrides.

§Example
use serde_json::json;
resource.override_pipeline_json(&json!({
    "MyNode": { "enabled": false }
}))?;
Source

pub fn override_next( &self, node_name: &str, next_list: &[&str], ) -> MaaResult<()>

Override the next node list for a specific node.

§Arguments
  • node_name - The name of the node to modify
  • next_list - The new list of next nodes
Source

pub fn get_node_data(&self, node_name: &str) -> MaaResult<Option<String>>

Get node data as a JSON string.

Source

pub fn get_node_object( &self, node_name: &str, ) -> MaaResult<Option<PipelineData>>

Get node data as a deserialized PipelineData object.

Source

pub fn node_list(&self) -> MaaResult<Vec<String>>

Get a list of all node names in the loaded pipelines.

Source

pub fn hash(&self) -> MaaResult<String>

Get a hash of the loaded resources for cache validation.

Source

pub fn get_default_recognition_param( &self, reco_type: &str, ) -> MaaResult<Option<Value>>

Get valid default parameters for a recognition type as JSON.

§Arguments
  • reco_type - The recognition type (e.g. “TemplateMatch”, “OCR”).
Source

pub fn get_default_action_param( &self, action_type: &str, ) -> MaaResult<Option<Value>>

Get valid default parameters for an action type as JSON.

§Arguments
  • action_type - The action type (e.g. “Click”, “Swipe”).
Source

pub fn use_cpu(&self) -> MaaResult<()>

Use CPU for inference (default).

Source

pub fn use_directml(&self, device_id: i32) -> MaaResult<()>

Use DirectML for GPU-accelerated inference (Windows only).

§Arguments
  • device_id - GPU device index (0 for first GPU)
Source

pub fn add_sink<F>(&self, callback: F) -> MaaResult<MaaSinkId>
where F: Fn(&str, &str) + Send + Sync + 'static,

Register a raw callback to receive events.

The callback receives event type and details as JSON strings.

Source

pub fn add_event_sink(&self, sink: Box<dyn EventSink>) -> MaaResult<MaaSinkId>

Register a strongly-typed event sink.

This method registers an implementation of the EventSink trait to receive structured notifications from this resource.

§Arguments
  • sink - The event sink implementation (must be boxed).
§Returns

A MaaSinkId which can be used to manually remove the sink later via remove_sink. The sink will be automatically unregistered and dropped when the Resource is dropped.

Source

pub fn remove_sink(&self, sink_id: MaaSinkId)

Remove a previously registered event sink.

Source

pub fn clear_sinks(&self)

Remove all registered event sinks.

Source

pub fn override_image( &self, image_name: &str, image: &MaaImageBuffer, ) -> MaaResult<()>

Override an image resource at runtime.

§Arguments
  • image_name - The name of the image to override
  • image - The new image buffer to use
Source

pub fn use_auto_ep(&self) -> MaaResult<()>

Auto-select the best inference execution provider.

Source

pub fn use_coreml(&self, coreml_flag: i32) -> MaaResult<()>

Use CoreML for inference (macOS only).

§Arguments
  • coreml_flag - CoreML configuration flag
Source

pub fn use_cuda(&self, nvidia_gpu_id: i32) -> MaaResult<()>

Use CUDA for inference (NVIDIA GPU only).

§Arguments
  • nvidia_gpu_id - NVIDIA GPU device ID (typically 0 for first GPU)
Source

pub fn unregister_custom_recognition(&self, name: &str) -> MaaResult<()>

Unregister a custom recognition by name.

Source

pub fn unregister_custom_action(&self, name: &str) -> MaaResult<()>

Unregister a custom action by name.

Source

pub fn custom_recognition_list(&self) -> MaaResult<Vec<String>>

Get the list of registered custom recognitions.

Source

pub fn custom_action_list(&self) -> MaaResult<Vec<String>>

Get the list of registered custom actions.

Source

pub fn clear_custom_recognition(&self) -> MaaResult<()>

Clear all registered custom recognitions.

Source

pub fn clear_custom_action(&self) -> MaaResult<()>

Clear all registered custom actions.

Trait Implementations§

Source§

impl Clone for Resource

Source§

fn clone(&self) -> Resource

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Send for Resource

Source§

impl Sync for Resource

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

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 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.