Under heavy development. This site describes the intended 1.0 language. Current features and performance vary. Development status
Sn50SnThe SnAPI programming language
0.2.0 Preview 1 · Frozen documentation

ChannelSendError

Owns the item that did not commit to a bounded channel. Moving the error transfers its item; destroying it destroys the unsent item. No extra allocation, shared duplicate or implicit retry occurs.

Sn is under heavy development. Reference extracted from this release’s bundled standard library. Public API examples are not an exhaustive compatibility test. Read the matching release guide for tested workflows and limitations. Read the status →

Module std.sync

import std.sync;

Public declaration contracts and authored examples. A page can document several related symbols. Implementation bodies are excluded.

ChannelSendError

pub class ChannelSendError<T> where T: Movable

Owns the item that did not commit to a bounded channel. Moving the error transfers its item; destroying it destroys the unsent item. No extra allocation, shared duplicate or implicit retry occurs. T: Movable unsent payload.

ChannelSendError.Reason

pub Reason: ChannelError;

Exact portable pre-commit reason.

ChannelSendError.Value

pub Value: T;

Owned original item available for retry.

ChannelSendError.init

pub init(Reason: ChannelError, mut Value: T)

Transfers failed input without allocating. Reason: Portable reason. Value: Owned unsent payload.

Documentation snapshot: October 24, 2026 About versions ↗
Searching Development · language & standard library