picodata_rust/
lib.rs

1#![allow(clippy::mutable_key_type, clippy::inline_always)]
2
3mod accessor;
4mod client;
5mod config;
6mod discovery;
7mod error;
8mod instance;
9mod manager;
10mod pool;
11mod strategy;
12
13pub use client::*;
14pub use config::*;
15pub use error::*;
16pub use strategy::*;
17
18pub(crate) const PREALLOC_CAP: usize = 16;
19
20/// Creates a picodata `Client`
21///
22/// # Parameters
23///
24/// - `config`: A string with parameters.
25///
26/// # Errors
27///
28/// - Any [`Error`] than `Client` initializer may return.
29///
30/// # Returns
31///
32/// An instances of `Client` on success or an `Error` if init did fail.
33pub async fn connect(config: &str) -> Result<Client, Error> {
34    let cfg = Config::from(config.parse::<pg::Config>()?);
35    Client::new(cfg).await
36}
37
38/// Creates a picodata `Client`
39///
40/// # Parameters
41///
42/// - `config`: A config.
43///
44/// # Errors
45///
46/// - Any [`Error`] than `Client` initializer may return.
47///
48/// # Returns
49///
50/// An instances of `Client` on success or an `Error` if init did fail.
51pub async fn connect_cfg(cfg: Config) -> Result<Client, Error> {
52    Client::new(cfg).await
53}