swift_package/conf/
swift_package.rs1use anyhow::Result;
2use camino_fs::{Utf8Path, Utf8PathBuf};
3use serde::Deserialize;
4
5#[derive(Deserialize, Debug, Default)]
6#[serde(rename_all = "kebab-case")]
7pub struct SwiftPackageConfiguration {
8 pub package_name: String,
9 pub udl_file: Utf8PathBuf,
10 #[serde(default)]
11 pub resource_dirs: Vec<Utf8PathBuf>,
12}
13
14impl SwiftPackageConfiguration {
15 pub fn parse(xcfr: &serde_json::Value, package_dir: &Utf8Path) -> Result<Self> {
17 let mut me = serde_json::from_value::<Self>(xcfr.clone())?;
18 me.resource_dirs = me
19 .resource_dirs
20 .into_iter()
21 .map(|res| package_dir.join(res))
22 .collect();
23 me.udl_file = package_dir.join(me.udl_file);
24 Ok(me)
25 }
26}