paddle_rust_sdk/
response.rs

1//! This module defines the response structures for the Paddle API.
2
3use serde::Deserialize;
4
5use crate::entities::Pagination;
6use crate::PaddleApiError;
7
8/// Meta information about the API request.
9/// This includes the request ID, which can be used for debugging or tracking purposes.
10#[derive(Debug, Deserialize)]
11pub struct Meta {
12    pub request_id: String,
13    pub pagination: Option<Pagination>,
14}
15
16#[derive(Debug, Deserialize)]
17#[serde(untagged)]
18pub(crate) enum Response<T> {
19    Success(SuccessResponse<T>),
20    Error(ErrorResponse),
21}
22
23/// Success response structure for the Paddle API.
24#[derive(Debug, Deserialize)]
25pub struct SuccessResponse<T> {
26    pub data: T,
27    pub meta: Meta,
28}
29
30/// Error response structure for the Paddle API.
31#[derive(Debug, Deserialize)]
32pub struct ErrorResponse {
33    pub error: PaddleApiError,
34    pub meta: Meta,
35}