helixlauncher_meta/
index.rs

1use 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}