use crate::design::Library;
use crate::util::UniquelyNamedBuilder;
use crate::Name;
use crate::Result;
#[derive(Clone, Debug, PartialEq)]
pub struct Project {
name: Name,
libraries: Vec<Library>,
}
impl crate::traits::Identify for Project {
fn identifier(&self) -> &str {
self.name.as_ref()
}
}
impl Project {
pub fn from_builder(name: Name, builder: UniquelyNamedBuilder<Library>) -> Result<Self> {
Ok(Project {
name,
libraries: builder.finish()?,
})
}
pub fn libraries(&self) -> Vec<Library> {
self.libraries.clone()
}
}