This commit is contained in:
shibazaki 2025-10-07 08:25:51 +02:00
parent d8096e18d6
commit 0cba43f2e0

View File

@ -2,7 +2,7 @@ use std::fs;
use crate::structs::Package; use crate::structs::Package;
use std::error::Error; use std::error::Error;
use serde::Serialize; use serde::Serialize;
use std::collections::HashMap; use std::collections::BTreeMap;
use std::process::Command; use std::process::Command;
fn parse_dpkg_output(output: &str) -> Vec<Package> { fn parse_dpkg_output(output: &str) -> Vec<Package> {
@ -17,14 +17,14 @@ fn parse_dpkg_output(output: &str) -> Vec<Package> {
.collect() .collect()
} }
fn packages_to_hashmap(packages: &[Package]) -> HashMap<String, String> { fn packages_to_hashmap(packages: &[Package]) -> BTreeMap<String, String> {
packages.iter().map(|p| (p.name.clone(), p.version.clone())).collect() packages.iter().map(|p| (p.name.clone(), p.version.clone())).collect()
} }
pub fn save_packages_to_toml(packages: &[Package], path: &str) -> Result<(), Box<dyn Error>> { pub fn save_packages_to_toml(packages: &[Package], path: &str) -> Result<(), Box<dyn Error>> {
#[derive(Serialize)] #[derive(Serialize)]
struct PackagesWrapper<'a> { struct PackagesWrapper<'a> {
packages: &'a HashMap<String, String>, packages: &'a BTreeMap<String, String>,
} }
let pkg_map = packages_to_hashmap(packages); let pkg_map = packages_to_hashmap(packages);