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.

pub fn protocol(c: Capability) -> String

Get the protocol name from a capability.

Search Document