suweal/wss/surreal_wss

Types

pub type SurrealWssConnection {
  SurrealWssConnection(
    subject: process.Subject(
      collie.WebsocketMessage(SurrealWssMessage),
    ),
    connection: suweal.Connection,
  )
}

Constructors

pub type SurrealWssConnectionBuilder {
  SurrealWssConnectionBuilder(
    connection: suweal.Connection,
    name: option.Option(
      process.Name(collie.WebsocketMessage(SurrealWssMessage)),
    ),
    on_close: fn(collie.CloseReason) -> Nil,
  )
}

Constructors

pub type SurrealWssError {
  InvalidUrl
  FailedToConnect
}

Constructors

  • InvalidUrl
  • FailedToConnect
pub type SurrealWssMessage {
  Query(
    query: String,
    receiver: process.Subject(SurrealWssResponse(dynamic.Dynamic)),
  )
  Signup(
    collection: String,
    fields: List(#(String, surreal_ql.SurrealQL)),
    receiver: process.Subject(SurrealWssResponse(dynamic.Dynamic)),
  )
  Signin(
    collection: String,
    fields: List(#(String, surreal_ql.SurrealQL)),
    receiver: process.Subject(SurrealWssResponse(dynamic.Dynamic)),
  )
  Use(
    namespace: String,
    database: String,
    receiver: process.Subject(SurrealWssResponse(dynamic.Dynamic)),
  )
}

Constructors

pub type SurrealWssResponse(a) {
  AuthResponse(id: Int, result: String)
  ErrorResponse(id: Int, error: SurrealWssResponseError)
  QueryResponse(id: Int, result: List(suweal.SurrealResponse(a)))
  UseResponse(id: Int)
}

Constructors

pub type SurrealWssResponseError {
  SurrealWssResponseError(
    cause: option.Option(String),
    code: Int,
    kind: String,
    message: String,
  )
}

Constructors

  • SurrealWssResponseError(
      cause: option.Option(String),
      code: Int,
      kind: String,
      message: String,
    )

Values

pub fn send(
  connection: SurrealWssConnection,
  message: SurrealWssMessage,
) -> Nil
pub fn send_query(
  connection: SurrealWssConnection,
  query: String,
  receiver: process.Subject(SurrealWssResponse(dynamic.Dynamic)),
) -> Nil
pub fn send_signin(
  connection: SurrealWssConnection,
  collection: String,
  fields: List(#(String, surreal_ql.SurrealQL)),
  receiver: process.Subject(SurrealWssResponse(dynamic.Dynamic)),
) -> Nil
pub fn send_signup(
  connection: SurrealWssConnection,
  collection: String,
  fields: List(#(String, surreal_ql.SurrealQL)),
  receiver: process.Subject(SurrealWssResponse(dynamic.Dynamic)),
) -> Nil
pub fn with_database(
  connection: SurrealWssConnection,
  database: String,
) -> SurrealWssConnection
pub fn with_namespace(
  connection: SurrealWssConnection,
  namespace: String,
) -> SurrealWssConnection
✨ Search Document