//! Chainfire distributed KVS client library
//!
//! This crate provides a client for interacting with Chainfire clusters.
//!
//! # Example
//!
//! ```no_run
//! use chainfire_client::Client;
//!
//! #[tokio::main]
//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
//!     let mut client = Client::connect("http://127.0.0.1:2379").await?;
//!
//!     // Put a value
//!     client.put("/my/key", "my value").await?;
//!
//!     // Get a value
//!     if let Some(value) = client.get("/my/key").await? {
//!         println!("Got: {}", String::from_utf8_lossy(&value));
//!     }
//!
//!     Ok(())
//! }
//! ```

mod client;
mod error;
pub mod node;
mod watch;

pub use client::{CasOutcome, Client};
pub use error::{ClientError, Result};
pub use node::{NodeCapacity, NodeFilter, NodeMetadata};
pub use watch::{EventType, WatchEvent, WatchHandle};
