Skip to main content

cassandra_cpp/
lib.rs

1//! This is a wrapper around the DataStax C++ driver for Cassandra. It aims to be 100% safe with minimal overhead added
2#![deny(missing_docs)]
3#![allow(unknown_lints)]
4#![allow(clippy::doc_markdown)]
5#![allow(dead_code)]
6// TODO: remove
7// `error_chain!` (v0.12, unmaintained) emits its own internal
8// `cfg(has_error_description_deprecated)` check that newer rustc
9// flags as `unexpected_cfgs`. The cfg is the crate's build-script
10// gate, not a typo on our end — silence the lint at the crate
11// root rather than papering over each macro-expansion site.
12#![allow(unexpected_cfgs)]
13// `error_chain!` can recurse deeply
14#![recursion_limit = "1024"]
15
16#[cfg(feature = "slog")]
17#[macro_use]
18extern crate slog;
19#[macro_use]
20extern crate error_chain;
21
22use cassandra_cpp_sys as cassandra_sys;
23
24pub use crate::cassandra::batch::{Batch, BatchType};
25pub use crate::cassandra::cluster::{Cluster, CqlProtocol};
26pub use crate::cassandra::collection::{CassCollection, List, Map, Set};
27pub use crate::cassandra::consistency::Consistency;
28pub use crate::cassandra::custom_payload::CustomPayload;
29pub use crate::cassandra::data_type::DataType;
30// pub use cassandra::write_type::*;
31pub use crate::cassandra::field::Field;
32pub use crate::cassandra::inet::Inet;
33pub use crate::cassandra::iterator::LendingIterator;
34// pub use cassandra::util::*;
35// pub use cassandra::metrics::*;
36pub use crate::cassandra::iterator::{
37    AggregateIterator, ColumnIterator, FieldIterator, FunctionIterator, KeyspaceIterator,
38    MapIterator, SetIterator, TableIterator, UserTypeIterator,
39};
40#[cfg(feature = "log")]
41pub use crate::cassandra::log::set_log_logger;
42#[cfg(feature = "slog")]
43#[allow(deprecated)]
44pub use crate::cassandra::log::set_logger;
45#[cfg(feature = "slog")]
46pub use crate::cassandra::log::set_slog_logger;
47pub use crate::cassandra::log::{set_level, LogLevel};
48pub use crate::cassandra::policy::retry::RetryPolicy;
49pub use crate::cassandra::prepared::PreparedStatement;
50pub use crate::cassandra::result::CassResult;
51pub use crate::cassandra::row::AsRustType;
52pub use crate::cassandra::row::Row;
53pub use crate::cassandra::schema::aggregate_meta::AggregateMeta;
54pub use crate::cassandra::schema::column_meta::ColumnMeta;
55pub use crate::cassandra::schema::function_meta::FunctionMeta;
56pub use crate::cassandra::schema::keyspace_meta::KeyspaceMeta;
57pub use crate::cassandra::schema::schema_meta::SchemaMeta;
58pub use crate::cassandra::schema::table_meta::TableMeta;
59pub use crate::cassandra::session::Session;
60#[cfg(feature = "early_access_min_tls_version")]
61pub use crate::cassandra::ssl::SslTlsVersion;
62pub use crate::cassandra::ssl::{Ssl, SslVerifyFlag};
63pub use crate::cassandra::statement::BindRustType;
64pub use crate::cassandra::statement::Statement;
65// pub use cassandra::custom_payload::CustomPayload;
66pub use crate::cassandra::time::TimestampGen;
67pub use crate::cassandra::tuple::Tuple;
68pub use crate::cassandra::user_type::UserType;
69pub use crate::cassandra::uuid::{Uuid, UuidGen};
70pub use crate::cassandra::value::{Value, ValueType};
71
72pub use crate::cassandra::error::*;
73
74// #[macro_use]
75mod cassandra {
76    #[macro_use]
77    pub mod util;
78    pub mod batch;
79    pub mod cluster;
80    pub mod collection;
81    pub mod consistency;
82    pub mod custom_payload;
83    pub mod data_type;
84    pub mod error;
85    pub mod field;
86    pub mod future;
87    pub mod inet;
88    pub mod iterator;
89    pub mod log;
90    pub mod metrics;
91    pub mod policy;
92    pub mod prepared;
93    pub mod result;
94    pub mod row;
95    pub mod schema;
96    pub mod session;
97    pub mod ssl;
98    pub mod statement;
99    pub mod time;
100    pub mod tuple;
101    pub mod user_type;
102    pub mod uuid;
103    pub mod value;
104    pub mod write_type;
105}
106
107// #[phase(plugin)] extern crate bindgen;
108// #[allow(dead_code, uppercase_variables, non_camel_case_types)]
109// mod mysql_bindings {
110//    bindgen!("/usr/include/mysql/mysql.h", match="mysql.h", link="mysql");
111// }