Skip to main content

Module request

Module request 

Source
Expand description

IO requests, results, and the source that fulfils them.

The protocol moves bytes at a range. A source has exactly one other property a consumer may ask for, its length, because a Vortex file cannot be located from its start without it. Nothing else is a request: anything a stage needs that is not bytes at a range is construction-time data for that stage.

Structs§

Completion
One finished request: its owner, its request identity, and the answer.
IoOwnerId
Opaque owner identity chosen by the caller, unique within a registration scope.
IoRequest
One request: a consumer-chosen id and the target it names.
IoRequestId
Consumer-chosen label for one request, unique within the issuing object.
IoSlot
One outstanding request at a time, with ids that never repeat within the owner.
ReadAtIoSource
A simple source that registers batches and performs one fetch per wait(). Optional hints are declined. Shared reads, prefetching, and priority scheduling belong to a later IO service implementation.

Enums§

IoIntent
A stage’s reason for registering bytes. Optional hints may be declined by the service.
IoResult
Result for one request. The variant matches the target: Size for Size, Bytes for Range. The driver checks this before delivering, so a consumer never sees a mismatch.
IoTarget
What to fetch from the source: its length, or bytes at a range. This enum is closed; see the module documentation.

Traits§

IoConsumer
Receives fulfilled requests. Implementations only store; they never compute here.
IoService
A byte source’s IO service, shared by everything that reads the source.
IoSource
IO registration and dispatch for one registration scope, such as the work descended from one root planner. Services may decline optional hints. Accepted optional work belongs to the source, not to the publishing stage, and lives until the source is cleared or dropped.

Type Aliases§

IoBatch
Requests an object publishes together, each exactly once.