agentcat-api 0.0.1

Generated Rust client for the AgentCat API, consumed by agentcat-sdk - placeholder for the generated client, which is in active development.
Documentation
//! Generated HTTP client for the [AgentCat](https://agentcat.com) API.
//!
//! **Status: placeholder.** This crate reserves the `agentcat-api` name for the
//! generated Rust API client, which will ship as `1.0.0`. It has no
//! functionality yet — do not depend on it.
//!
//! You probably want [`agentcat-sdk`](https://crates.io/crates/agentcat-sdk)
//! instead: this is the low-level generated transport it is built on, not the
//! supported integration surface.
#![forbid(unsafe_code)]
#![deny(missing_docs)]

use std::error::Error;
use std::fmt;

/// Returned by every entry point until the generated client ships.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct NotYetImplemented;

impl fmt::Display for NotYetImplemented {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        f.write_str(
            "the AgentCat Rust API client is not released yet; this crate \
             reserves the name for the generated client (see https://agentcat.com)",
        )
    }
}

impl Error for NotYetImplemented {}

/// Placeholder for the generated API client.
#[derive(Debug, Clone, Copy, Default)]
pub struct Client;

impl Client {
    /// Placeholder for the client constructor.
    ///
    /// # Errors
    ///
    /// Always returns [`NotYetImplemented`] in this release.
    pub fn new() -> Result<Self, NotYetImplemented> {
        Err(NotYetImplemented)
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn client_reports_not_yet_implemented() {
        assert_eq!(Client::new().err(), Some(NotYetImplemented));
    }
}