Skip to main content

snowflakedb_rs/
lib.rs

1pub mod auth;
2pub(crate) mod connection;
3pub(crate) mod driver;
4pub(crate) mod errors;
5pub(crate) mod executor;
6pub(crate) mod http;
7pub(crate) mod transaction;
8
9pub(crate) use errors::{SnowflakeError, error, this_errors};
10
11pub use connection::{
12    SnowflakeConnection, SnowflakeConnectionOpts, SnowflakeConnectionOptsBuilder, SnowflakePool,
13};
14pub use driver::{
15    primitives::{
16        cell::{Cell, CellValue, ToCellValue},
17        column::{Column, ColumnType},
18        row::Row,
19    },
20    protocols::{JsonDescribeResult, JsonProtocol},
21    query::{DescribeResult, Query, QueryResult},
22};
23
24pub use transaction::SnowflakeTransaction;
25
26pub struct NoClient;
27
28#[cfg(feature = "reqwest")]
29pub type DefaultClient = reqwest::Client;
30
31#[cfg(not(feature = "reqwest"))]
32pub type DefaultClient = NoClient;
33
34pub type JsonSnowflakeConnection<C = DefaultClient> = SnowflakeConnection<C, JsonProtocol>;
35pub type JsonSnowflakeTransaction<C = DefaultClient> = SnowflakeTransaction<C, JsonProtocol>;
36pub type JsonSnowflakePool<C = DefaultClient> = SnowflakePool<C, JsonProtocol>;
37pub type JsonQuery<C = DefaultClient> = JQ<C>;
38pub type JsonQueryResult<C = DefaultClient> = JQR<C>;
39
40use crate::driver::protocols::{JsonQuery as JQ, JsonQueryResult as JQR};
41
42#[cfg(feature = "arrow")]
43pub type ArrowSnowflakeConnection<C = DefaultClient> = SnowflakeConnection<C, ArrowProtocol>;
44#[cfg(feature = "arrow")]
45pub type ArrowSnowflakeTransaction<C = DefaultClient> = SnowflakeTransaction<C, ArrowProtocol>;
46#[cfg(feature = "arrow")]
47pub type ArrowSnowflakePool<C = DefaultClient> = SnowflakePool<C, ArrowProtocol>;
48#[cfg(feature = "arrow")]
49pub type ArrowQuery<C = DefaultClient> = AQ<C>;
50#[cfg(feature = "arrow")]
51pub type ArrowQueryResult<C = DefaultClient> = AQR<C>;
52
53pub use http::client::SnowflakeHttpClient;
54
55pub use executor::Executor;
56
57#[cfg(feature = "arrow")]
58use crate::driver::protocols::{ArrowQuery as AQ, ArrowQueryResult as AQR};
59
60#[cfg(feature = "arrow")]
61pub use crate::driver::protocols::{ArrowDescribeResult, ArrowProtocol};
62
63#[cfg(test)]
64mod tests {}