classDiagram
class Service {
+run() Result~JoinHandle~
}
<<interface>> Service
class Pcs {
+new() Pcs
+run() Result~JoinHandle~
}
class Bms {
+new() Bms
+run() Result~JoinHandle~
}
Pcs ..|> Service
Bms ..|> Service
class Ems {
+devices: Vec~Service~
+start_services() Result
}
Ems *-- Service