macro_rules! redis_module {
(
name: $module_name:expr,
version: $module_version:expr,
/// Global allocator for the redis module defined.
/// In most of the cases, the Redis allocator ([crate::alloc::RedisAlloc])
/// should be used.
allocator: ($allocator_type:ty, $allocator_init:expr),
data_types: [
$($data_type:ident),* $(,)*
],
$(init: $init_func:ident,)* $(,)*
$(deinit: $deinit_func:ident,)* $(,)*
$(info: $info_func:ident,)?
commands: [
$([
$name:expr,
$command:expr,
$flags:expr,
$firstkey:expr,
$lastkey:expr,
$keystep:expr
]),* $(,)*
] $(,)*
$(event_handlers: [
$([
$(@$event_type:ident) +:
$event_handler:expr
]),* $(,)*
] $(,)* )?
$(configurations: [
$(i64:[$([
$i64_configuration_name:expr,
$i64_configuration_val:expr,
$i64_default:expr,
$i64_min:expr,
$i64_max:expr,
$i64_flags_options:expr,
$i64_on_changed:expr
]),* $(,)*],)?
$(string:[$([
$string_configuration_name:expr,
$string_configuration_val:expr,
$string_default:expr,
$string_flags_options:expr,
$string_on_changed:expr
]),* $(,)*],)?
$(bool:[$([
$bool_configuration_name:expr,
$bool_configuration_val:expr,
$bool_default:expr,
$bool_flags_options:expr,
$bool_on_changed:expr
]),* $(,)*],)?
$(enum:[$([
$enum_configuration_name:expr,
$enum_configuration_val:expr,
$enum_default:expr,
$enum_flags_options:expr,
$enum_on_changed:expr
]),* $(,)*],)?
$(module_args_as_configuration:$use_module_args:expr,)?
$(module_config_get:$module_config_get_command:expr,)?
$(module_config_set:$module_config_set_command:expr,)?
])?
) => { ... };
}
Expand description
Defines a Redis module.
It registers the defined module, sets it up and initialises properly, registers all the commands and types.