retrace/wire

Versioned, application-neutral delivery envelopes. Payloads are application-encoded strings. This module checks transport and sequence invariants; it does not interpret the application’s model.

Types

pub type Batch {
  Batch(
    session: Session,
    checkpoint: retrace.Checkpoint(String),
    entries: List(retrace.Entry(Event)),
  )
}

Constructors

pub type Error {
  MalformedEnvelope
  InvalidSession
  EmptyBatch
  TooManyEntries
  TooLarge
  InvalidHistory(retrace.Error(Nil))
}

Constructors

  • MalformedEnvelope
  • InvalidSession
  • EmptyBatch
  • TooManyEntries
  • TooLarge
  • InvalidHistory(retrace.Error(Nil))
pub type Event {
  Event(kind: String, payload: String)
}

Constructors

  • Event(kind: String, payload: String)
pub type Session {
  Session(
    id: String,
    user_ref: String,
    build: String,
    contract: String,
    platform: String,
  )
}

Constructors

  • Session(
      id: String,
      user_ref: String,
      build: String,
      contract: String,
      platform: String,
    )

Values

pub fn decode_batch(input: String) -> Result(Batch, Error)
pub fn encode(batch: Batch) -> String
pub fn end_sequence(batch: Batch) -> Int
pub fn end_time(batch: Batch) -> Int
pub const max_bytes: Int
pub const max_entries: Int
pub fn origin(session: Session) -> retrace.Origin
pub fn session_decoder() -> decode.Decoder(Session)
pub fn session_json(session: Session) -> json.Json
pub fn valid_id(id: String) -> Bool
pub fn validate(batch: Batch) -> Result(Nil, Error)
✨ Search Document