blanket_rs/resource/
root.rs1use crate::builder::{Build, Builder, Dependency};
2use std::cell::RefCell;
3use std::path::PathBuf;
4use std::rc::Rc;
5
6pub struct Root {}
7
8impl std::fmt::Debug for Root {
9 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10 write!(f, "--root--")
11 }
12}
13
14impl Build for Root {
15 fn as_any(&self) -> &dyn std::any::Any {
16 self
17 }
18 fn equals(&self, other: Rc<RefCell<dyn Build>>) -> bool {
19 let other = other.borrow();
20 let any = other.as_any();
21 match any.downcast_ref::<Self>() {
22 Some(_) => true,
23 None => false,
24 }
25 }
26 fn register(
27 self,
28 builder: &mut Builder,
29 ) -> Result<(Option<PathBuf>, Dependency, Vec<Dependency>), Box<dyn std::error::Error>> {
30 let dependency = builder.make_dependency(self)?;
31 Ok((Some(PathBuf::from("/")), dependency, vec![]))
32 }
33 fn generate(&mut self) -> Result<(), Box<dyn std::error::Error>> {
34 println!("Root::generate");
35 Ok(())
36 }
37}