hippox-drivers 0.3.3

πŸ¦›All indivisible atomic driver units in Hippox.
docs.rs failed to build hippox-drivers-0.3.3
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

Working Principle

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      DRIVER REGISTRY                        β”‚
β”‚                                                           β”‚
β”‚  DriverRegistryMap = HashMap<DriverCategory,               β”‚
β”‚                      HashMap<String, Arc<dyn Driver>>>    β”‚
β”‚                                                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”‚
β”‚  β”‚ File     β”‚  β”‚ Math     β”‚  β”‚ Net      β”‚              β”‚
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€              β”‚
β”‚  β”‚ read     β”‚  β”‚ calc     β”‚  β”‚ http     β”‚              β”‚
β”‚  β”‚ write    β”‚  β”‚ power    β”‚  β”‚ ping     β”‚              β”‚
β”‚  β”‚ delete   β”‚  β”‚ stats    β”‚  β”‚ dns      β”‚              β”‚
β”‚  β”‚ ...      β”‚  β”‚ ...      β”‚  β”‚ ...      β”‚              β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Registration:

  Compile-time: file_register() / math_register() / net_register()
  Runtime: register_driver(category, name, driver)

Query:

  get_driver_by_name("read") β†’ Driver impl β†’ execute()

Core Type

pub type DriverRegistryMap = HashMap<DriverCategory, HashMap<String, Arc<dyn Driver>>>;

Main Functions

Function Description
get_registry() Get read lock on the registry
get_registry_mut() Get write lock on the registry
register_driver(category, name, driver) Dynamically register a driver
get_all_drivers() Get all registered drivers
get_driver_by_name(name) Find a driver by name
get_driver_by_name_and_category(name, category) Find a driver by name and category
has_driver(name) Check if a driver exists
list_drivers_names() List all driver names
list_drivers_name_by_category(category) List driver names in a category
get_drivers_by_category(category) Get drivers by category string
get_drivers_by_category_list(categories) Get drivers by multiple categories
list_drivers_name_by_category_list(categories) List driver names by multiple categories
get_all_categorys() Get all category names
get_driver_category() Get categories with driver counts
get_driver_category_names() Get all category names
get_driver_category_name_and_describe() Get category names with descriptions
generate_driver_registry_table_json_str() Generate registry JSON string

DriverCategory Methods

Method Description
from_str(s) Convert string to enum
name() Convert enum to string (lowercase)
display_name() Get human-readable display name
description() Get category description
icon() Get category icon/emoji
priority() Get display priority (lower = first)
metadata() Get complete category metadata
all_categories() Get metadata for all categories