use crate::pbxproj::*;
#[derive(Debug, derive_new::new)]
pub struct PBXTargetDependency<'a> {
pub id: String,
pub name: Option<&'a String>,
pub platform_filter: Option<&'a String>,
pub target: Option<PBXTarget<'a>>,
pub target_proxy: Option<PBXContainerItemProxy<'a>>,
pub product: Option<XCSwiftPackageProductDependency<'a>>,
}
impl<'a> AsPBXObject<'a> for PBXTargetDependency<'a> {
fn as_pbx_object(
id: String,
value: &'a PBXHashMap,
objects: &'a PBXObjectCollection,
) -> anyhow::Result<Self>
where
Self: Sized + 'a,
{
Ok(Self {
id,
name: value.get_string("name"),
platform_filter: value.get_string("platformFilter"),
target: value.get_string("target").and_then(|key| objects.get(key)),
target_proxy: value
.get_string("targetProxy")
.and_then(|key| objects.get(key)),
product: value
.get_string("productRef")
.and_then(|key| objects.get(key)),
})
}
}