pub mod client;
pub mod contract;
pub mod error;
pub mod health;
pub mod import;
pub mod process;
pub mod session;
pub use client::{
CassClient, DEFAULT_BINARY, DiscoveredBinary, DiscoverySource, STABLE_ENV_OVERRIDES, discover,
discover_import_binary, discover_with_override,
};
pub use contract::{
CassContract, REQUIRED_API_VERSION, REQUIRED_CAPABILITIES, REQUIRED_CONTRACT_VERSION,
};
pub use error::CassError;
pub use health::{CassDbHealth, CassHealth, CassIndexHealth};
pub use import::{
CassImportDegradation, CassImportError, CassImportOptions, CassImportParseSummary,
CassImportReport, ImportSessionStatus, ImportedCassSession, import_cass_sessions,
parse_import_since_duration, parse_sessions_json_summary, parse_view_json_summary,
};
pub use process::{CASS_EXIT_DEGRADED, CASS_EXIT_OK, CassExitClass, CassInvocation, CassOutcome};
pub use session::{
CassAgent, CassAggregationBucket, CassIndexFreshness, CassRole, CassSearchCacheStats,
CassSearchHit, CassSearchMeta, CassSearchResponse, CassSearchTiming, CassSessionInfo,
CassSessionReference, CassSessionReferenceError, CassSpanKind, CassTimestamp, CassViewSpan,
ImportCursor, ImportSessionResult, normalize_cass_session_uri,
};
pub const SUBSYSTEM: &str = "cass";
#[must_use]
pub const fn subsystem_name() -> &'static str {
SUBSYSTEM
}
#[cfg(test)]
mod tests {
use super::{
CASS_EXIT_DEGRADED, CASS_EXIT_OK, CassClient, CassContract, CassError, CassExitClass,
CassInvocation, CassOutcome, DEFAULT_BINARY, DiscoveredBinary, DiscoverySource,
REQUIRED_API_VERSION, REQUIRED_CAPABILITIES, REQUIRED_CONTRACT_VERSION,
STABLE_ENV_OVERRIDES, discover, discover_import_binary, discover_with_override,
subsystem_name,
};
use std::path::Path;
#[test]
fn subsystem_name_is_stable() {
assert_eq!(subsystem_name(), "cass");
}
#[test]
fn public_api_re_exports_compile() {
let _ = DEFAULT_BINARY;
let _ = REQUIRED_API_VERSION;
let _ = REQUIRED_CONTRACT_VERSION;
let _ = REQUIRED_CAPABILITIES;
let _ = STABLE_ENV_OVERRIDES;
let _ = CASS_EXIT_OK;
let _ = CASS_EXIT_DEGRADED;
let _ = DiscoverySource::Path.as_str();
let _ = DiscoveredBinary::new(
Path::new("/usr/bin/cass").to_path_buf(),
DiscoverySource::Path,
);
let _ = discover;
let _ = discover_import_binary;
let _ = discover_with_override;
let client: CassClient = CassClient::new_default();
let inv: CassInvocation = client.invocation(["health"]);
let outcome: CassOutcome =
CassOutcome::synthetic(inv.clone(), b"{}".to_vec(), Vec::new(), Some(CASS_EXIT_OK));
let class: CassExitClass = outcome.class();
let contract: CassContract = CassContract::new(
"0.0.0",
REQUIRED_API_VERSION,
REQUIRED_CONTRACT_VERSION,
REQUIRED_CAPABILITIES.iter().copied(),
);
let _: Result<(), CassError> = contract.ensure_compatible();
assert_eq!(class, CassExitClass::Success);
}
}