br_pgsql/
lib.rs

1
2
3use std::collections::HashMap;
4use json::{JsonValue};
5use crate::config::Config;
6use crate::connect::Connect;
7mod config;
8pub mod connect;
9mod packet;
10mod format;
11
12#[derive(Clone, Debug)]
13pub struct Pgsql {
14    /// 基础配置
15    pub config: Config,
16    pub pool: HashMap<String, Connect>,
17}
18
19impl Pgsql {
20    /// 配置文件加载
21    pub fn new(config: JsonValue) -> Result<Self, String> {
22        let config = match Config::new(config) {
23            Ok(e) => e,
24            Err(e) => return Err(format!("配置文件错误: {e}")),
25        };
26        Ok(Self { config, pool: HashMap::new() })
27    }
28    /// 获取连接
29    pub fn connect(&mut self) -> Result<Connect, String> {
30        Connect::new(self.config.clone())
31        //if self.pool.get_mut(&*thread_id).is_none() {
32        //    let conn = match Connect::new(self.config.clone()) {
33        //        Ok(e) => e,
34        //        Err(e) => return Err(e)
35        //    };
36        //    self.pool.insert(thread_id.clone(), conn);
37        //}
38        //let connect = self.pool.get_mut(&*thread_id).unwrap();
39        ////Ok(connect)
40    }
41}