pub struct ChannelConfig {
pub channel_id: ChannelId,
pub visibility: Visibility,
pub publish_caps: Option<CapabilityFilter>,
pub subscribe_caps: Option<CapabilityFilter>,
pub require_token: bool,
pub priority: u8,
pub reliable: bool,
pub max_rate_pps: Option<u32>,
}Expand description
Channel configuration with capability-based access control.
Authorization flow:
- Node announces capabilities via
CapabilityAd - If
publish_capsis set, node’sCapabilitySetmust match the filter - If
require_tokenis true, node must also have a validPermissionToken - On success,
(origin_hash, channel_hash)is inserted into theAuthGuard
Fields§
§channel_id: ChannelIdChannel identity (name + hash).
visibility: VisibilityVisibility scope for subnet routing.
publish_caps: Option<CapabilityFilter>Capability requirements for publishing. None = any node can publish.
subscribe_caps: Option<CapabilityFilter>Capability requirements for subscribing. None = any node can subscribe.
require_token: boolWhether a valid PermissionToken is required (in addition to capabilities).
priority: u8Default priority level for this channel’s packets (0 = lowest).
reliable: boolDefault reliability mode for streams on this channel.
max_rate_pps: Option<u32>Optional rate limit in packets per second.
Implementations§
Source§impl ChannelConfig
impl ChannelConfig
Sourcepub fn new(channel_id: ChannelId) -> ChannelConfig
pub fn new(channel_id: ChannelId) -> ChannelConfig
Create a new channel config with defaults (open access, global visibility).
Sourcepub fn with_visibility(self, visibility: Visibility) -> ChannelConfig
pub fn with_visibility(self, visibility: Visibility) -> ChannelConfig
Set visibility.
Sourcepub fn with_publish_caps(self, filter: CapabilityFilter) -> ChannelConfig
pub fn with_publish_caps(self, filter: CapabilityFilter) -> ChannelConfig
Set capability requirements for publishing.
Sourcepub fn with_subscribe_caps(self, filter: CapabilityFilter) -> ChannelConfig
pub fn with_subscribe_caps(self, filter: CapabilityFilter) -> ChannelConfig
Set capability requirements for subscribing.
Sourcepub fn with_require_token(self, require: bool) -> ChannelConfig
pub fn with_require_token(self, require: bool) -> ChannelConfig
Require a valid permission token.
Sourcepub fn with_priority(self, priority: u8) -> ChannelConfig
pub fn with_priority(self, priority: u8) -> ChannelConfig
Set default priority.
Sourcepub fn with_reliable(self, reliable: bool) -> ChannelConfig
pub fn with_reliable(self, reliable: bool) -> ChannelConfig
Set default reliability.
Sourcepub fn with_rate_limit(self, pps: u32) -> ChannelConfig
pub fn with_rate_limit(self, pps: u32) -> ChannelConfig
Set rate limit.
Sourcepub fn can_publish(
&self,
node_caps: &CapabilitySet,
entity_id: &EntityId,
token_cache: &TokenCache,
) -> bool
pub fn can_publish( &self, node_caps: &CapabilitySet, entity_id: &EntityId, token_cache: &TokenCache, ) -> bool
Check if a node is authorized to publish on this channel.
Sourcepub fn can_subscribe(
&self,
node_caps: &CapabilitySet,
entity_id: &EntityId,
token_cache: &TokenCache,
) -> bool
pub fn can_subscribe( &self, node_caps: &CapabilitySet, entity_id: &EntityId, token_cache: &TokenCache, ) -> bool
Check if a node is authorized to subscribe to this channel.
Trait Implementations§
Source§impl Clone for ChannelConfig
impl Clone for ChannelConfig
Source§fn clone(&self) -> ChannelConfig
fn clone(&self) -> ChannelConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more