feat: model improvements
This commit is contained in:
parent
985c3af906
commit
3df0dc88bf
2 changed files with 17 additions and 7 deletions
|
@ -1,4 +1,6 @@
|
|||
use addonscript_versioning::Version;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use url::Url;
|
||||
|
||||
use crate::AddonDescriptor;
|
||||
|
||||
|
@ -8,14 +10,14 @@ use super::{AddonScript, File, Hashes, Meta};
|
|||
pub struct APIAddon {
|
||||
pub id: String,
|
||||
pub namespace: String,
|
||||
pub versions: Vec<String>,
|
||||
pub versions: Vec<Version>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub meta: Option<Meta>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
pub struct APIFile {
|
||||
pub link: Vec<String>,
|
||||
pub link: Vec<Url>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub hashes: Option<Hashes>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
|
|
|
@ -2,6 +2,7 @@ use std::collections::HashSet;
|
|||
|
||||
use addonscript_versioning::{Version, VersionRestriction};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use url::Url;
|
||||
|
||||
pub use self::{
|
||||
enums::{Flag, InstallAction},
|
||||
|
@ -31,7 +32,7 @@ pub struct Manifest {
|
|||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
pub struct VersionlessManifest {
|
||||
pub addonscript: AddonScript,
|
||||
pub addonscript: Option<AddonScript>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
|
@ -49,13 +50,13 @@ impl Default for AddonScript {
|
|||
pub struct AddonDescriptor {
|
||||
pub id: String,
|
||||
pub namespace: String,
|
||||
pub version: Option<String>,
|
||||
pub version: Option<Version>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
#[derive(Debug, Serialize, Deserialize, Clone)]
|
||||
pub struct Repository {
|
||||
pub namespace: String,
|
||||
pub instances: Vec<String>,
|
||||
pub instances: Vec<Url>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
|
@ -106,8 +107,15 @@ pub struct Flags {
|
|||
}
|
||||
|
||||
impl VersionlessManifest {
|
||||
pub fn get_version(&self) -> u8 {
|
||||
match &self.addonscript {
|
||||
Some(addonscript) => addonscript.version,
|
||||
None => 1,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn is_version_valid(&self) -> bool {
|
||||
self.addonscript.version == 2
|
||||
self.get_version() == 2
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue