Skip to main content

EventSubscriptionInterface

type EventSubscriptionInterface

A live subscription.

Call `next` in a loop to receive updates; it only returns `None` once `cancel` has been called, since the subscription itself never ends.

type EventSubscriptionInterface interface {
// Cancel the subscription, dropping the connection and unblocking
// a pending `next`.
//
// Idempotent, and safe to call while `next` is pending — the
// pending call drops the connection on its way out.
//
// Named `cancel` rather than `close` because a `close` method
// collides with the disposal method uniffi generates for objects
// in some languages.
Cancel()
// Whether the subscription has been canceled.
IsCanceled() bool
// Wait for the next update.
//
// Returns `None` once the subscription has been canceled.
// Concurrent calls are serialized; there is no ordering guarantee
// between them.
//
// Raises for errors the subscription cannot recover from by
// itself, such as a rejected filter. The subscription stays
// usable afterwards, so a caller that considers the error
// transient can keep calling `next`.
Next() (*EventUpdate, error)
}