The Worker's adapter: the three hubs, in the household's object. It has no other capability, so the service it is given serves no other route.
One household's backend. Fails only if the object binding is missing from the configuration.
19 pub fn new(env: &Env, household: &HouseholdId) -> worker::Result<Self> { 20 let namespace = || env.durable_object(OBJECTS); 21 Ok(Self { 22 memory: ObjectHub::new(namespace()?, household.clone()), 23 household: ObjectHub::new(namespace()?, household.clone()), 24 chat: ObjectHub::new(namespace()?, household.clone()), 25 }) 26 } 27}
29impl HasMemory for ObjectBackend { 30 type Memory = ObjectHub<MemoryDoc>; 31 fn memory(&self) -> &Self::Memory { 32 &self.memory 33 } 34} 35 36impl HasHousehold for ObjectBackend { 37 type Household = ObjectHub<Household>; 38 fn household(&self) -> &Self::Household { 39 &self.household 40 } 41} 42 43impl HasChat for ObjectBackend { 44 type Chat = ObjectHub<ChatState>; 45 fn chat(&self) -> &Self::Chat { 46 &self.chat 47 } 48}