pub struct SubscriptionEntry {
pub category: EventCategory,
pub operations: Option<HashSet<String>>,
}Expand description
A subscription entry with optional operation-level filtering.
Wraps an EventCategory with an optional set of accepted operations.
This enables fine-grained subscription control: components can subscribe
to a category and only receive events for specific operations.
§Examples
use orcs_event::{EventCategory, SubscriptionEntry};
// Accept all operations for Echo category
let entry = SubscriptionEntry::all(EventCategory::Echo);
assert!(entry.matches(&EventCategory::Echo, "any_op"));
// Accept only specific operations for Extension category
let ext = EventCategory::extension("lua", "Extension");
let entry = SubscriptionEntry::with_operations(
ext.clone(),
["route_response".to_string()],
);
assert!(entry.matches(&ext, "route_response"));
assert!(!entry.matches(&ext, "llm_response"));Fields§
§category: EventCategoryThe event category to subscribe to.
operations: Option<HashSet<String>>Optional set of accepted operations within this category.
None means all operations are accepted (wildcard).
Implementations§
Source§impl SubscriptionEntry
impl SubscriptionEntry
Sourcepub fn all(category: EventCategory) -> SubscriptionEntry
pub fn all(category: EventCategory) -> SubscriptionEntry
Create a subscription accepting all operations for a category.
Sourcepub fn with_operations(
category: EventCategory,
operations: impl IntoIterator<Item = String>,
) -> SubscriptionEntry
pub fn with_operations( category: EventCategory, operations: impl IntoIterator<Item = String>, ) -> SubscriptionEntry
Create a subscription accepting specific operations only.
Sourcepub fn matches(&self, category: &EventCategory, operation: &str) -> bool
pub fn matches(&self, category: &EventCategory, operation: &str) -> bool
Check if an event matches this subscription entry.
Returns true if:
- The category matches, AND
- Either
operationsisNone(wildcard), or the operation is in the set.
Sourcepub fn category(&self) -> &EventCategory
pub fn category(&self) -> &EventCategory
Returns the category of this entry.
Trait Implementations§
Source§impl Clone for SubscriptionEntry
impl Clone for SubscriptionEntry
Source§fn clone(&self) -> SubscriptionEntry
fn clone(&self) -> SubscriptionEntry
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SubscriptionEntry
impl Debug for SubscriptionEntry
Source§impl PartialEq for SubscriptionEntry
impl PartialEq for SubscriptionEntry
impl Eq for SubscriptionEntry
impl StructuralPartialEq for SubscriptionEntry
Auto Trait Implementations§
impl Freeze for SubscriptionEntry
impl RefUnwindSafe for SubscriptionEntry
impl Send for SubscriptionEntry
impl Sync for SubscriptionEntry
impl Unpin for SubscriptionEntry
impl UnsafeUnpin for SubscriptionEntry
impl UnwindSafe for SubscriptionEntry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more