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.

The framework rejects an empty name and any name already taken by a custom recognition or action on this Resource; in that case the previous registration is kept and Err(MaaError::InvalidArgument) is returned. Unregister first to replace.

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.

The framework rejects an empty name and any name already taken by a custom recognition or action on this Resource; in that case the previous registration is kept and Err(MaaError::InvalidArgument) is returned. Unregister first to replace.

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 use_webgpu(&self, device_id: i32) -> MaaResult<()>

Use WebGPU for GPU-accelerated inference (Windows, Linux and macOS).

§Arguments
  • device_id - WebGPU device id (0 for the first device)
Source

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

Use NCNN for inference (Android builds only, CPU only).

Fails on builds without NCNN, and when switching to or from NCNN after resource loading has started (until clear). Models are loaded from <model stem>.ncnn.param/.ncnn.bin/.ncnn.json with no fallback to onnxruntime.

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.

Tries CUDA, then DirectML, then WebGPU, then CoreML, and falls back to CPU.

Source

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

👎Deprecated:

MaaDeps no longer ships CoreML; use use_webgpu instead

Use CoreML for inference (macOS only).

MaaDeps no longer ships the CoreML execution provider since MaaFramework 5.14.3.

§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) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 = !

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

fn try_from(value: U) -> Result<T, !>

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.