Skip to content

Split file capabilities and clarify scheduler trait names. - #40

Merged
samuel-williams-shopify merged 2 commits into
mainfrom
refactor/file-operation-capabilities
Oct 18, 2026
Merged

samuel-williams-shopify merged 2 commits into
mainfrom
refactor/file-operation-capabilities

Conversation

@samuel-williams-shopify

@samuel-williams-shopify samuel-williams-shopify commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Generic file consumers can now require individual operations, such as FileRead + FileWrite, without requiring a backend to implement the entire file interface. Name the broad interfaces FileScheduler and SocketScheduler to distinguish the scheduler capabilities from their resources.

Introduce FileOperation for the shared associated resource type and split the core file operations into independent traits. FileStat owns the metadata output type; FileAdvice and FileAllocate depend only on the shared base. FileScheduler is an automatically implemented aggregate, with ordinary and _submit forms grouped in their operation trait. Rename the existing Socket trait to SocketScheduler; its operation-level split remains separate follow-up work. Native, Tokio, and simulated backends preserve their existing operation behavior.

This changes the public implementor interface: implement individual file traits instead of File, move fully qualified associated-type paths to FileOperation/FileStat, and import operation traits for method calls on concrete schedulers. Rename broad bounds and imports to FileScheduler/SocketScheduler, and socket implementations to impl SocketScheduler. Update modules, exports, examples, shared contracts, release notes, and migration guidance. Partial backends and compile-time checks exercise the smaller capability requirements. Record SocketOperation as the agreed base name for the separate socket refactor.

@samuel-williams-shopify samuel-williams-shopify changed the title Split file I/O into individual scheduler capabilities. Split file capabilities and clarify scheduler trait names. Oct 18, 2026
@samuel-williams-shopify
samuel-williams-shopify merged commit 1278297 into main Oct 18, 2026
17 checks passed
@samuel-williams-shopify
samuel-williams-shopify deleted the refactor/file-operation-capabilities branch October 18, 2026 03:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant