sing_add_trait

Attribute Macro sing_add_trait 

Source
#[sing_add_trait]
Expand description

Add the trait in this impl block to sings trait store.

The impl block needs to contain all functions as usual. After adding a trait, it can be used by the sing_loop macro.

ยงExample

trait FruitTree {
   fn shake(&self, shakes: u32) -> Vec<Fruit>;
}

#[derive(Debug, Serialize, Deserialize)]
struct Fruit {
   fruit_type: String,
}

struct BananaTree;

#[sing_add_trait()]
impl FruitTree for BananaTree {
   fn shake(&self, shakes: u32) -> Vec<Fruit>{
      let mut out = vec!();

      for _ in 0..shakes {
         out.push(Fruit{fruit_type: String::from("Banana")});
      }
                  
      out
   }
}