1#![warn(missing_docs)]
2
3use serde::{Deserialize, Serialize};
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
13pub struct ImageManifest {
14 pub architecture: String,
16 pub os: String,
18 pub config: ManifestConfig,
20 pub layers: Vec<ManifestLayer>,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
28pub struct ManifestConfig {
29 pub media_type: String,
31 pub size: u64,
33 pub digest: String,
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
41pub struct ManifestLayer {
42 pub media_type: String,
44 pub size: u64,
46 pub digest: String,
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize)]
54pub struct AuthResponse {
55 pub token: String,
57 pub access_token: Option<String>,
59 pub expires_in: Option<u32>,
61 pub scope: Option<String>,
63 pub token_type: Option<String>,
65}
66
67#[derive(Debug, Clone)]
71pub struct DownloadProgress {
72 pub downloaded: u64,
74 pub total: u64,
76 pub percentage: f64,
78}