first version of object initialization (I hate (aka do not understand) lifetimes)

This commit is contained in:
2023-12-06 23:12:00 +01:00
parent a86791b722
commit 29f1383697
5 changed files with 123 additions and 49 deletions

View File

@ -0,0 +1,12 @@
use super::tasks::ExecutableObjectIF;
pub type ObjectId = usize;
pub trait ObjectManager<'a> {
fn get_object(&self, id: ObjectId) -> Option<&'a dyn SystemObject>;
}
pub trait SystemObject: ExecutableObjectIF {
fn get_id(&self) -> ObjectId;
fn initialize(&mut self, object_manager: &dyn ObjectManager) -> Result<(),()>;
fn get_command_queue(&self) -> crate::fsrc::queues::MessageQueueSender;
}