harmony/adr/core-abstractions/topology2/src/main_v1.rs

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);
}
}