use std::collections::HashSet;
use chrono::FixedOffset;
pub use error::{DeError, Unexpected};
pub use kind::BoltKind;
mod builder;
mod cenum;
mod date_time;
mod de;
mod element;
mod error;
mod kind;
mod node;
mod path;
mod point;
mod rel;
mod time;
mod typ;
mod urel;
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
pub struct Id(pub u64);
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
pub struct StartNodeId(pub u64);
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
pub struct EndNodeId(pub u64);
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub struct Labels<Coll = Vec<String>>(pub Coll);
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub struct Type<T = String>(pub T);
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Keys<Coll = HashSet<String>>(pub Coll);
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Timezone<T = String>(pub T);
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Offset<T = FixedOffset>(pub T);
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Nodes<T>(pub Vec<T>);
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Relationships<T>(pub Vec<T>);
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Indices<T = i64>(pub Vec<T>);