Skip to main content

narwhal_core/
lib.rs

1//! Database-agnostic abstractions shared across the narwhal workspace.
2//!
3//! Drivers implement [`DatabaseDriver`] and [`Connection`]; the rest of the
4//! application interacts with trait objects and is unaware of the underlying
5//! database engine.
6
7#![forbid(unsafe_code)]
8
9pub mod cancel;
10pub mod capabilities;
11pub mod connection;
12pub mod driver;
13pub mod error;
14pub mod future;
15pub mod query_stream;
16pub mod schema;
17pub mod ssh;
18pub mod stream;
19pub mod value;
20
21pub use future::BoxFuture;
22
23pub use cancel::{CancelHandle, DynCancelHandle};
24pub use capabilities::Capabilities;
25pub use connection::{
26    Connection, ConnectionColor, ConnectionConfig, ConnectionParams, DynConnection, IsolationLevel,
27    PreConnectStep, SshConfig, SslMode,
28};
29pub use driver::{DatabaseDriver, DynDatabaseDriver};
30pub use error::{Error, Result};
31pub use query_stream::QueryStream;
32pub use schema::{
33    Column, ColumnHeader, ForeignKey, Index, QueryResult, ReferentialAction, Row, Schema,
34    SchemaCatalog, Table, TableKind, TableSchema, UniqueConstraint,
35};
36pub use ssh::{READY_TIMEOUT as SSH_READY_TIMEOUT, SshTunnel};
37pub use stream::{DynRowStream, RowStream};
38pub use value::Value;