use crate::{ast::parsing::SetSourceId, *};
#[derive(Debug, Clone)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "serde", serde(deny_unknown_fields))]
pub struct LibTarget {
#[cfg_attr(feature = "serde", serde(default, skip_serializing_if = "Option::is_none"))]
pub kind: Option<Span<TargetType>>,
#[cfg_attr(feature = "serde", serde(default, skip_serializing_if = "Option::is_none"))]
pub namespace: Option<Span<Arc<str>>>,
#[cfg_attr(feature = "serde", serde(default, skip_serializing_if = "Option::is_none"))]
pub path: Option<Span<Uri>>,
}
#[derive(Debug, Clone)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[cfg_attr(feature = "serde", serde(deny_unknown_fields))]
pub struct BinTarget {
#[cfg_attr(feature = "serde", serde(default, skip_serializing_if = "Option::is_none"))]
pub name: Option<Span<Arc<str>>>,
#[cfg_attr(feature = "serde", serde(default, skip_serializing_if = "Option::is_none"))]
pub path: Option<Span<Uri>>,
}
impl SetSourceId for LibTarget {
fn set_source_id(&mut self, source_id: SourceId) {
if let Some(kind) = self.kind.as_mut() {
kind.set_source_id(source_id);
}
if let Some(ns) = self.namespace.as_mut() {
ns.set_source_id(source_id);
}
if let Some(path) = self.path.as_mut() {
path.set_source_id(source_id);
}
}
}
impl SetSourceId for BinTarget {
fn set_source_id(&mut self, source_id: SourceId) {
if let Some(ns) = self.name.as_mut() {
ns.set_source_id(source_id);
}
if let Some(path) = self.path.as_mut() {
path.set_source_id(source_id);
}
}
}