rust_x402/types/
discovery.rs1use super::payment::PaymentRequirements;
4use serde::{Deserialize, Serialize};
5use serde_json::Value;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct DiscoveryResource {
10 pub resource: String,
12 pub r#type: String,
14 #[serde(rename = "x402Version")]
16 pub x402_version: u32,
17 pub accepts: Vec<PaymentRequirements>,
19 #[serde(rename = "lastUpdated")]
21 pub last_updated: u64,
22 #[serde(skip_serializing_if = "Option::is_none")]
24 pub metadata: Option<Value>,
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
29pub struct DiscoveryResponse {
30 #[serde(rename = "x402Version")]
32 pub x402_version: u32,
33 pub items: Vec<DiscoveryResource>,
35 pub pagination: PaginationInfo,
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
41pub struct PaginationInfo {
42 pub limit: u32,
44 pub offset: u32,
46 pub total: u32,
48}