Add rustdoc comments to all public items

Document all public structs, enums, traits, functions, fields, and
variants across the library. Adds crate-level documentation with a
usage example, module-level docs, and API reference links where
applicable. Also fixes four bare URL warnings in existing doc comments.
This commit is contained in:
2026-01-31 06:59:08 +00:00
parent f8a4323117
commit c4acf465ba
12 changed files with 260 additions and 9 deletions

View File

@@ -1,21 +1,39 @@
//! Error types for the Google Gemini client.
use std::fmt::Display;
use tokio_util::codec::LinesCodecError;
use crate::types;
/// A type alias for `Result<T, error::Error>`.
pub type Result<T> = std::result::Result<T, Error>;
/// Errors that can occur when using the Gemini client.
#[derive(Debug)]
pub enum Error {
/// An environment variable required for configuration was missing or invalid.
Env(std::env::VarError),
/// An HTTP transport error from the underlying `reqwest` client.
HttpClient(reqwest::Error),
/// A JSON serialization or deserialization error.
Serde(serde_json::Error),
/// A structured error returned by the Vertex AI API.
VertexError(types::VertexApiError),
/// A structured error returned by the Gemini API.
GeminiError(types::GeminiApiError),
/// The API response contained no candidate completions.
NoCandidatesError,
/// An error occurred while decoding the SSE event stream.
EventSourceError(LinesCodecError),
/// The SSE event stream closed unexpectedly.
EventSourceClosedError,
GenericApiError { status: u16, body: String },
/// An API error that could not be parsed into a structured error type.
GenericApiError {
/// The HTTP status code.
status: u16,
/// The raw response body.
body: String,
},
}
impl Display for Error {