helixlauncher_meta/
index.rs1use serde::{Deserialize, Serialize};
2
3use super::component;
4
5pub type Index = Vec<IndexEntry>;
6
7#[derive(Serialize, Deserialize, Debug)]
8pub struct IndexEntry {
9 pub version: String,
10 #[serde(skip_serializing_if = "Vec::is_empty", default)]
11 pub conflicts: Vec<component::ComponentDependency>,
12 #[serde(skip_serializing_if = "Vec::is_empty", default)]
13 pub requires: Vec<component::ComponentDependency>,
14}
15
16impl From<&component::Component> for IndexEntry {
17 fn from(component: &component::Component) -> Self {
18 Self {
19 version: component.version.to_string(),
20 conflicts: component.conflicts.to_vec(),
21 requires: component.requires.to_vec(),
22 }
23 }
24}
25impl From<component::Component> for IndexEntry {
26 fn from(component: component::Component) -> Self {
27 Self {
28 version: component.version,
29 conflicts: component.conflicts,
30 requires: component.requires,
31 }
32 }
33}