rust-package-manager/client/src/package.rs

68 lines
1.4 KiB
Rust
Raw Normal View History

2024-11-20 23:42:39 +03:00
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct Package {
name: String,
publisher: Publisher,
version: Version,
size: u64,
hash: Vec<u8>,
dependencies: Vec<String>,
publish_date_time: DateTime<Utc>,
last_update_date_time: DateTime<Utc>,
location: String,
}
impl Package {
pub fn get_name(&self) -> String {
self.name.clone()
}
}
impl Default for Package {
fn default() -> Self {
Self {
name: Default::default(),
publisher: Default::default(),
version: Default::default(),
size: Default::default(),
hash: Default::default(),
dependencies: Default::default(),
publish_date_time: Default::default(),
last_update_date_time: Default::default(),
location: Default::default(),
}
}
}
2024-11-20 23:42:39 +03:00
#[derive(Debug, Serialize, Deserialize)]
pub struct Version {
first: u8,
second: u8,
third: u8,
}
impl Default for Version {
fn default() -> Self {
Self {
first: Default::default(),
second: Default::default(),
third: Default::default(),
}
}
}
2024-11-20 23:42:39 +03:00
#[derive(Debug, Serialize, Deserialize)]
pub struct Publisher {
name: String,
}
impl Default for Publisher {
fn default() -> Self {
Self {
name: Default::default(),
}
}
}