1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
pub use taos_query;
pub use taos_query::prelude::*;

pub use taos_query::prelude::RawError as Error;

pub type TaosPool = taos_query::prelude::Pool<TaosBuilder>;

#[cfg(any(feature = "ws", feature = "native", feature = "optin"))]
pub mod sync {
    pub use taos_query::prelude::sync::*;

    pub use super::Stmt;
    pub use super::{Consumer, MessageSet, Offset, TmqBuilder};
    pub use super::{Taos, TaosBuilder};
}

#[cfg(all(feature = "ws", any(feature = "native", feature = "optin")))]
mod stmt;
#[cfg(all(feature = "ws", any(feature = "native", feature = "optin")))]
pub use stmt::Stmt;

#[cfg(all(feature = "ws", any(feature = "native", feature = "optin")))]
mod tmq;
#[cfg(all(feature = "ws", any(feature = "native", feature = "optin")))]
pub use tmq::{Consumer, Data, MessageSet, Meta, Offset, TmqBuilder};

#[cfg(all(feature = "ws", any(feature = "native", feature = "optin")))]
mod query;
#[cfg(all(feature = "ws", any(feature = "native", feature = "optin")))]
pub use query::*;

#[cfg(all(feature = "ws", not(any(feature = "native", feature = "optin"))))]
pub use taos_ws::*;

#[cfg(all(any(feature = "native", feature = "optin"), not(feature = "ws")))]
pub use crate::sys::*;
#[cfg(all(any(feature = "native", feature = "optin"), not(feature = "ws")))]
pub use sys::tmq::Offset;

#[cfg(all(not(feature = "ws"), not(feature = "native"), not(feature = "optin")))]
compile_error!("Either feature \"ws\" or \"native\"|"optin" or both must be enabled for this crate.");

// #[cfg(all(feature = "optin", feature = "native"))]
// compile_error!(
//     "Feature \"optin\" is conflicted with \"native\", choose only one feature for native"
// );

#[cfg(feature = "optin")]
pub(crate) use taos_optin as sys;

#[cfg(not(feature = "optin"))]
#[cfg(feature = "native")]
pub(crate) use taos_sys as sys;