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