#![doc = include_str!("../README.md")]
#![deny(rustdoc::broken_intra_doc_links)]
#![allow(
clippy::missing_errors_doc,
clippy::missing_panics_doc,
clippy::needless_pass_by_value,
clippy::unnecessary_wraps
)]
#![cfg_attr(test, allow(clippy::disallowed_methods))]
extern crate alloc;
pub mod auth;
pub mod client;
pub mod exec;
pub use codexwire_protocol as protocol;
pub mod rpc;
pub use protocol::CODEX_VERSION;
pub fn user_agent_version(ua: &str) -> Option<&str> {
let (_, rest) = ua.split_once('/')?;
rest.split_whitespace().next()
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn version_from_user_agent() {
let ua = "my-client/0.167.0 (NixOS 26.11.0; x86_64) dumb (my-client; 0.1.0)";
assert_eq!(user_agent_version(ua), Some("0.167.0"));
assert_eq!(user_agent_version("nothing"), None);
}
}