ips/crates/pkg6/src/main.rs

112 lines
3.6 KiB
Rust
Raw Normal View History

use diff::Diff;
use libips::actions::File;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Serialize, Deserialize, Debug, Clone, Diff)]
#[diff(attr(
#[derive(Debug, PartialEq)]
))]
struct Manifest {
2025-07-26 12:54:01 +02:00
files: HashMap<String, File>,
}
fn main() {
2025-07-26 12:54:01 +02:00
let base = Manifest {
files: HashMap::from([
(
"0dh5".to_string(),
File {
payload: None,
path: "var/file".to_string(),
group: "bin".to_string(),
owner: "root".to_string(),
mode: "0755".to_string(),
preserve: false,
overlay: false,
original_name: "".to_string(),
revert_tag: "".to_string(),
sys_attr: "".to_string(),
properties: vec![],
facets: Default::default(),
},
),
(
"12ds3".to_string(),
File {
payload: None,
path: "var/file1".to_string(),
group: "bin".to_string(),
owner: "root".to_string(),
mode: "0755".to_string(),
preserve: false,
overlay: false,
original_name: "".to_string(),
revert_tag: "".to_string(),
sys_attr: "".to_string(),
properties: vec![],
facets: Default::default(),
},
),
(
"654".to_string(),
File {
payload: None,
path: "var/file1".to_string(),
group: "bin".to_string(),
owner: "root".to_string(),
mode: "0755".to_string(),
preserve: false,
overlay: false,
original_name: "".to_string(),
revert_tag: "".to_string(),
sys_attr: "".to_string(),
properties: vec![],
facets: Default::default(),
},
),
]),
};
2025-07-26 12:54:01 +02:00
let new_set = Manifest {
files: HashMap::from([
(
"0dh5".to_string(),
File {
payload: None,
path: "var/file".to_string(),
group: "bin".to_string(),
owner: "root".to_string(),
mode: "0755".to_string(),
preserve: false,
overlay: false,
original_name: "".to_string(),
revert_tag: "".to_string(),
sys_attr: "".to_string(),
properties: vec![],
facets: Default::default(),
},
),
(
"654".to_string(),
File {
payload: None,
path: "var/file1".to_string(),
group: "bin".to_string(),
owner: "root".to_string(),
mode: "0755".to_string(),
preserve: false,
overlay: false,
original_name: "".to_string(),
revert_tag: "".to_string(),
sys_attr: "".to_string(),
properties: vec![],
facets: Default::default(),
},
),
]),
};
let d = base.diff(&new_set);
println!("{:#?}", d);
}