eclipse-iceoryx / eclipse-iceoryx/iceoryx2
Make DynamicStorage type alias generic
- Dominant language
- Rust
- Stars
- 2.5k
- Forks
- 185
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 47
Description
Currently it is possible to create an inconsistent service variant, e.g. a local variant that uses POSIX shared memory for the blackboard (see https://github.com/eclipse-iceoryx/iceoryx2/pull/872#discussion_r2212879127). To prevent this, we could adjust the `DynamicStorage` type alias in `iceoryx2/src/service/mod.rs` to be a generic type alias like `trait DynamicStorage: DynamicStorage` and either use it for the `BlackboardMgmt` like `type BlackboardMgmt: Self::DynamicStorage` or even remove the type alias for `BlackboardMgmt`. The same can be applied to the `BlackboardPayload` when we generalize the `SharedMemory` type alias.
Contributor guide
Research direction
Start in iceoryx2/src/service/mod.rs and inspect the DynamicStorage, BlackboardMgmt, BlackboardPayload, and SharedMemory aliases. Determine the consistent generic relationship required for service variants, then verify that the affected aliases prevent incompatible storage combinations across the service implementations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- distributed-systems
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100