Skip to main content

eero_api/types/
envelope.rs

1//! API response envelope types.
2//!
3//! Every eero API response is wrapped in an [`ApiResponse`] containing a
4//! [`Meta`] header (status code, server time, optional error message) and
5//! an optional `data` payload.
6
7use serde::{Deserialize, Serialize};
8
9/// Metadata included in every API response.
10#[derive(Debug, Deserialize, Serialize)]
11pub struct Meta {
12    #[serde(default)]
13    pub code: u16,
14    #[serde(default)]
15    pub server_time: Option<String>,
16    #[serde(default)]
17    pub error: Option<String>,
18}
19
20/// Top-level API response wrapper containing metadata and an optional data payload.
21#[derive(Debug, Deserialize, Serialize)]
22pub struct ApiResponse<T> {
23    pub meta: Meta,
24    pub data: Option<T>,
25}