distribute/capability
Protocol capability definitions for version negotiation.
Capabilities are exchanged during handshake to ensure nodes can communicate using compatible protocol versions. Each capability specifies a protocol name and a version range (min to max) that the node supports.
Example
import distribute/capability
let caps = [
capability.new("messaging", 1, 3), // Supports messaging v1-v3
capability.new("crypto", 2, 2), // Only supports crypto v2
]
Types
Represents a protocol capability with version range. Used during handshake negotiation to find compatible versions.
pub type Capability {
Capability(protocol: String, min: Int, max: Int)
}
Constructors
-
Capability(protocol: String, min: Int, max: Int)
A list of capabilities supported by a node.
pub type NodeCapabilities =
List(Capability)
Values
pub fn make(protocol: String, min: Int, max: Int) -> Capability
Deprecated: Use new() instead
Create a new capability with protocol name and version range.
pub fn max_version(c: Capability) -> Int
Get the maximum supported version from a capability.
pub fn min_version(c: Capability) -> Int
Get the minimum supported version from a capability.
pub fn new(protocol: String, min: Int, max: Int) -> Capability
Create a new capability with protocol name and version range.