ember_plus/server/
handler.rs1use std::sync::Arc;
4use crate::error::Result;
5use crate::glow::{EmberPath, GlowConnection, InvocationResult, EmberValue};
6
7pub type SetValueHandler = Arc<dyn Fn(&EmberPath, &EmberValue) -> Result<bool> + Send + Sync>;
9
10pub type InvokeHandler = Arc<dyn Fn(&EmberPath, i32, &[EmberValue]) -> Result<InvocationResult> + Send + Sync>;
12
13pub type MatrixHandler = Arc<dyn Fn(&EmberPath, &GlowConnection) -> Result<()> + Send + Sync>;
15
16pub fn default_set_value_handler() -> SetValueHandler {
18 Arc::new(|_path, _value| Ok(true))
19}
20
21pub fn default_invoke_handler() -> InvokeHandler {
23 Arc::new(|_path, invocation_id, _args| {
24 Ok(InvocationResult::success(invocation_id, vec![]))
25 })
26}
27
28pub fn default_matrix_handler() -> MatrixHandler {
30 Arc::new(|_path, _connection| Ok(()))
31}