forked from NationTech/harmony
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			606 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			606 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| fn main() {}
 | |
| 
 | |
| trait Topology {}
 | |
| 
 | |
| struct DummyTopology {}
 | |
| 
 | |
| impl Topology for DummyTopology {}
 | |
| 
 | |
| impl Topology for LampTopology {}
 | |
| 
 | |
| struct LampTopology {}
 | |
| 
 | |
| struct Maestro {
 | |
|     topology: Box<dyn Topology>,
 | |
| }
 | |
| 
 | |
| trait Score {
 | |
|     type Topology: Topology;
 | |
|     fn execute(&self, topology: &Self::Topology);
 | |
| }
 | |
| 
 | |
| struct K8sScore {}
 | |
| impl Score for K8sScore {
 | |
|     type Topology = LampTopology;
 | |
|     fn execute(&self, topology: &Box<dyn Self::Topology>) {
 | |
|         todo!()
 | |
|     }
 | |
| }
 | |
| 
 | |
| impl Maestro {
 | |
|     pub fn execute<T: Topology>(&self, score: Box<dyn Score<Topology = T>>) {
 | |
|         score.execute(&self.topology);
 | |
|     }
 | |
| }
 |