teo_runtime/config/
connector.rs

1use std::sync::Arc;
2use serde::Serialize;
3use crate::database::database::Database;
4
5#[derive(Debug, Clone)]
6pub struct Connector {
7    pub(crate) inner: Arc<Inner>,
8}
9
10#[derive(Debug, Serialize)]
11struct Inner {
12    provider: Database,
13    url: String,
14}
15
16impl Connector {
17    pub fn new(provider: Database, url: String) -> Self {
18        Self {
19            inner: Arc::new(Inner {
20                provider,
21                url,
22            })
23        }
24    }
25
26    pub fn provider(&self) -> Database {
27        self.inner.provider
28    }
29
30    pub fn url(&self) -> &str {
31        &self.inner.url
32    }
33}
34
35impl Serialize for Connector {
36    fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error> where S: serde::Serializer {
37        self.inner.serialize(serializer)
38    }
39}