gleamunison/sync_types

Types

pub type ConnectError {
  PeerNotFound(PeerId)
  CookieMismatch(PeerId)
  Timeout(PeerId)
  Refused(PeerId, reason: String)
}

Constructors

pub type PeerId {
  PeerId(name: String)
}

Constructors

  • PeerId(name: String)
pub type PeerState {
  PeerState(
    last_seen: Int,
    refs: set.Set(identity.DefinitionRef),
    status: PeerStatus,
  )
}

Constructors

pub type PeerStatus {
  Connected
  Disconnected
  Syncing
  Failed(String)
}

Constructors

  • Connected
  • Disconnected
  • Syncing
  • Failed(String)
pub type SyncError {
  ConnectionFailed(PeerId, ConnectError)
  TransferFailed(PeerId, message: String)
  HashConflict(
    PeerId,
    ref: identity.DefinitionRef,
    local: BitArray,
    remote: BitArray,
  )
}

Constructors

pub type SyncState {
  SyncState(
    peers: dict.Dict(PeerId, PeerState),
    known_refs: set.Set(identity.DefinitionRef),
  )
}

Constructors

Values

pub fn sync_connect(node: String) -> Result(Nil, String)
pub fn sync_push_defs(
  node: String,
  defs: List(#(String, BitArray)),
) -> Result(Nil, String)
pub fn sync_receive_diff(
  node: String,
) -> Result(List(String), String)
pub fn sync_request_defs(
  node: String,
  refs: List(String),
) -> Result(List(#(String, BitArray)), String)
pub fn sync_send_refs(
  node: String,
  refs: List(String),
) -> Result(Nil, String)
Search Document