1use rkyv::{Archive, Deserialize, Serialize};
4
5use crate::GuestResourceId;
6
7#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Archive, Serialize, Deserialize)]
9#[rkyv(bytecheck())]
10pub struct DependencyId(pub [u8; 16]);
11
12impl DependencyId {
13 pub const fn bytes(self) -> [u8; 16] {
15 self.0
16 }
17}
18
19#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
21#[rkyv(bytecheck())]
22pub struct SingletonRegister {
23 pub id: DependencyId,
25 pub resource: GuestResourceId,
27}
28
29#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
31#[rkyv(bytecheck())]
32pub struct SingletonLookup {
33 pub id: DependencyId,
35}