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

AsyncWriter

Defines a structural safe mutable byte-stream operation. Writes asynchronously while source/input loans remain live through completion. Successful/failed transfer counts may not exceed the supplied byte view. Implementations document blocking, retention and cancellation; the concept introduces no box, allocation, global stream or implicit event loop.

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.io

import std.io;

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

AsyncWriter

pub concept AsyncWriter<Self>

Defines a structural safe mutable byte-stream operation. Writes asynchronously while source/input loans remain live through completion. Successful/failed transfer counts may not exceed the supplied byte view. Implementations document blocking, retention and cancellation; the concept introduces no box, allocation, global stream or implicit event loop. Self: Concrete mutable stream state.

AsyncWriter.WriteAsync

requires fn WriteAsync(Input: readonly byte[], Token: CancellationToken) -> Task<Result<usize, IoError>>;

Starts a safe bounded byte transfer. Input: Borrowed readonly input slice; backing must remain valid through completion. Token: Owned cancellation observation for this operation. Return: Task yielding accepted/transferred byte count or portable failure with partial prefix.

AsyncWriter.FlushAsync

requires fn FlushAsync(Token: CancellationToken) -> Task<Result<void, IoError>>;

Propagates accepted bytes through downstream layers without durability promise. Token: Owned cancellation observation. Return: Task yielding complete propagation or portable failure.

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