1use crate::config::Config;
2use crate::connect::Connect;
3use crate::pools::Pools;
4use json::JsonValue;
5
6mod config;
7pub mod connect;
8mod error;
9mod format;
10mod packet;
11pub mod pools;
12
13pub use error::PgsqlError;
14
15#[derive(Clone, Debug)]
16pub struct Pgsql {
17 pub config: Config,
18}
19
20impl Pgsql {
21 pub fn new(config: &JsonValue) -> Result<Self, PgsqlError> {
22 Ok(Self {
23 config: Config::new(config),
24 })
25 }
26
27 pub fn connect(&mut self) -> Result<Connect, PgsqlError> {
28 Connect::new(self.config.clone())
29 }
30
31 pub fn pools(&mut self) -> Result<Pools, PgsqlError> {
32 Pools::new(self.config.clone(), 20)
33 }
34}