rsiot/components/cmp_surrealdb/
config.rs1use surrealdb::Response;
2
3use crate::message::Message;
4
5#[derive(Clone, Debug)]
7pub struct Config<TMsg> {
8 pub host: String,
10
11 pub port: u16,
13
14 pub user: String,
16
17 pub password: String,
19
20 pub namespace: String,
22
23 pub database: String,
25
26 pub init_script: String,
28
29 pub request_input: Vec<RequestInputConfig<TMsg>>,
31
32 pub request_start: Vec<RequestStartConfig<TMsg>>,
34}
35
36pub type FnOnSuccess<TMessage> = fn(Response) -> Result<Vec<Message<TMessage>>, anyhow::Error>;
37pub type FnOnFailure<TMessage> = fn() -> Vec<Message<TMessage>>;
38
39#[derive(Clone, Debug)]
41pub struct RequestInputConfig<TMsg> {
42 pub fn_input: fn(&Message<TMsg>) -> Option<String>,
44 pub fn_on_success: FnOnSuccess<TMsg>,
46 pub fn_on_failure: FnOnFailure<TMsg>,
48}
49
50#[derive(Clone, Debug)]
52pub struct RequestStartConfig<TMsg> {
53 pub query: String,
55 pub fn_on_success: FnOnSuccess<TMsg>,
57 pub fn_on_failure: FnOnFailure<TMsg>,
59}