Expand description
Portable runtime contracts and value types shared across the Fret workspace.
This crate intentionally avoids backend bindings (winit, wgpu, web-sys) and must not
force a global async runtime (Tokio, etc.).
For module ownership and “where should this go?” guidance, see crates/fret-runtime/README.md.
§Where to start
- Commands:
CommandId,CommandRegistry,CommandMeta - Models/state:
Model,ModelStore,ModelCx - Effects:
Effect - Host integration:
UiHost,GlobalsHost,ModelsHost - Portability contracts:
PlatformCapabilities
§Minimal example
use fret_runtime::{CommandId, CommandMeta, CommandRegistry};
let mut commands = CommandRegistry::default();
commands.register(CommandId::from("app.quit"), CommandMeta::new("Quit"));Re-exports§
pub use action::ActionId;pub use action::ActionMeta;pub use action::ActionRegistry;pub use action::TypedAction;pub use action_payload::WindowPendingActionPayloadService;pub use asset_resolver::AssetLoadAccessKind;pub use asset_resolver::AssetLoadDiagnosticEvent;pub use asset_resolver::AssetLoadDiagnosticsSnapshot;pub use asset_resolver::AssetLoadOutcomeKind;pub use asset_resolver::AssetResolverService;pub use asset_resolver::AssetRevisionTransitionKind;pub use asset_resolver::asset_capabilities;pub use asset_resolver::asset_resolver;pub use asset_resolver::register_asset_resolver;pub use asset_resolver::register_bundle_asset_entries;pub use asset_resolver::register_embedded_asset_entries;pub use asset_resolver::resolve_asset_bytes;pub use asset_resolver::resolve_asset_locator_bytes;pub use asset_resolver::resolve_asset_locator_reference;pub use asset_resolver::resolve_asset_reference;pub use asset_resolver::set_asset_resolver;pub use capabilities::ExecBackgroundWork;pub use capabilities::ExecCapabilities;pub use capabilities::ExecTimers;pub use capabilities::ExecWake;pub use capabilities::ExternalDragPayloadKind;pub use capabilities::ExternalDragPositionQuality;pub use capabilities::PlatformCapabilities;pub use capabilities::ShellCapabilities;pub use capabilities::WindowHoverDetectionQuality;pub use capabilities::WindowSetOuterPositionQuality;pub use capabilities::WindowZLevelQuality;pub use clipboard_diagnostics::ClipboardReadDiagnostics;pub use clipboard_diagnostics::ClipboardWriteDiagnostics;pub use clipboard_diagnostics::WindowClipboardDiagnosticsStore;pub use command::CommandId;pub use command_dispatch_diagnostics::CommandDispatchDecisionV1;pub use command_dispatch_diagnostics::CommandDispatchSourceKindV1;pub use command_dispatch_diagnostics::CommandDispatchSourceV1;pub use command_dispatch_diagnostics::WindowCommandDispatchDiagnosticsStore;pub use command_dispatch_diagnostics::WindowPendingCommandDispatchSourceService;pub use commands::CommandMeta;pub use commands::CommandRegistry;pub use commands::CommandScope;pub use commands::OsAction;pub use docking_settings::DockDragInversionModifier;pub use docking_settings::DockDragInversionPolicy;pub use docking_settings::DockDragInversionSettings;pub use docking_settings::DockingInteractionSettings;pub use drag::DRAG_KIND_DOCK_PANEL;pub use drag::DRAG_KIND_DOCK_TABS;pub use drag::DragKindId;pub use drag::DragPhase;pub use drag::DragSession;pub use drag::DragSessionId;pub use drag::WindowUnderCursorSource;pub use effect::DiagIncomingOpenItem;pub use effect::CreateWindowKind;pub use effect::CreateWindowRequest;pub use effect::Effect;pub use effect::WindowRequest;pub use execution::DispatchPriority;pub use execution::Dispatcher;pub use execution::DispatcherHandle;pub use execution::InboxDrain;pub use execution::InboxDrainHost;pub use execution::InboxDrainRegistry;pub use execution::Runnable;pub use font_bootstrap::FontCatalogUpdate;pub use font_bootstrap::FontFamilyDefaultsPolicy;pub use font_bootstrap::apply_font_catalog_update;pub use font_bootstrap::apply_font_catalog_update_with_metadata;pub use font_catalog::BundledFontBaselineSnapshot;pub use font_catalog::BundledFontBaselineSource;pub use font_catalog::FontCatalog;pub use font_catalog::FontCatalogEntry;pub use font_catalog::FontCatalogMetadata;pub use font_catalog::FontVariableAxisInfo;pub use font_catalog::RendererFontEnvironmentSnapshot;pub use font_catalog::RendererFontSourceLane;pub use font_catalog::RendererFontSourceRecord;pub use font_catalog::RendererSvgTextBridgeDiagnosticsSnapshot;pub use font_catalog::RendererSvgTextFontFallbackRecord;pub use font_catalog::RendererSvgTextFontSelectionMissRecord;pub use font_catalog::RendererSvgTextMissingGlyphRecord;pub use font_catalog::SystemFontRescanState;pub use font_catalog::TextFontStackKey;pub use font_catalog_cache::FontCatalogCache;pub use input::DefaultAction;pub use input::DefaultActionSet;pub use input::InputContext;pub use input::InputDispatchPhase;pub use input::KeyChord;pub use input::Platform;pub use input::TextBoundaryMode;pub use input::format_chord;pub use input::format_sequence;pub use interaction_diagnostics::DockDragDiagnostics;pub use interaction_diagnostics::DockDropCandidateRectDiagnostics;pub use interaction_diagnostics::DockDropCandidateRectKind;pub use interaction_diagnostics::DockDropPreviewDiagnostics;pub use interaction_diagnostics::DockDropPreviewKindDiagnostics;pub use interaction_diagnostics::DockDropResolveDiagnostics;pub use interaction_diagnostics::DockDropResolveSource;pub use interaction_diagnostics::DockDropTargetDiagnostics;pub use interaction_diagnostics::DockFloatingDragDiagnostics;pub use interaction_diagnostics::DockGraphSignatureDiagnostics;pub use interaction_diagnostics::DockGraphStatsDiagnostics;pub use interaction_diagnostics::DockTabStripActiveVisibilityDiagnostics;pub use interaction_diagnostics::DockTabStripActiveVisibilityStatusDiagnostics;pub use interaction_diagnostics::DockingInteractionDiagnostics;pub use interaction_diagnostics::ViewportCaptureDiagnostics;pub use interaction_diagnostics::WindowInteractionDiagnosticsStore;pub use interaction_diagnostics::WorkspaceInteractionDiagnostics;pub use interaction_diagnostics::WorkspaceTabStripActiveVisibilityDiagnostics;pub use interaction_diagnostics::WorkspaceTabStripActiveVisibilityStatusDiagnostics;pub use interaction_diagnostics::WorkspaceTabStripDragDiagnostics;pub use keymap::BindingV1;pub use keymap::KeySpecV1;pub use keymap::KeymapError;pub use keymap::KeymapFileV1;pub use keymap::DefaultKeybinding;pub use keymap::Keymap;pub use keymap::KeymapContinuation;pub use keymap::KeymapService;pub use keymap::PlatformFilter;pub use menu::ItemAnchor;pub use menu::ItemSelector;pub use menu::ItemSelectorTyped;pub use menu::Menu;pub use menu::MenuBar;pub use menu::MenuBarConfig;pub use menu::MenuBarError;pub use menu::MenuBarFileV1;pub use menu::MenuBarFileV2;pub use menu::MenuBarPatch;pub use menu::MenuBarPatchOp;pub use menu::MenuFileV1;pub use menu::MenuFileV2;pub use menu::MenuItem;pub use menu::MenuItemFileV1;pub use menu::MenuItemFileV2;pub use menu::MenuItemToggle;pub use menu::MenuItemToggleKind;pub use menu::MenuRole;pub use menu::MenuTarget;pub use menu::SystemMenuType;pub use model::Model;pub use model::ModelChangedDebugInfo;pub use model::ModelCreatedDebugInfo;pub use model::ModelCx;pub use model::ModelHost;pub use model::ModelId;pub use model::ModelStore;pub use model::ModelUpdateError;pub use model::WeakModel;pub use platform_completion::PlatformCompletion;pub use platform_text_input::PlatformTextInputQuery;pub use platform_text_input::PlatformTextInputQueryResult;pub use platform_text_input::Utf16Range;pub use redraw_request_diagnostics::RedrawRequestCallsiteCount;pub use redraw_request_diagnostics::WindowRedrawRequestAggregateSnapshot;pub use redraw_request_diagnostics::WindowRedrawRequestDiagnosticsStore;pub use redraw_request_diagnostics::WindowRedrawRequestWindowSnapshot;pub use runner_accessibility_diagnostics::RunnerAccessibilityDiagnosticsStore;pub use runner_accessibility_diagnostics::RunnerAccessibilitySnapshot;pub use runner_frame_drive_diagnostics::RunnerFrameDriveAggregateSnapshot;pub use runner_frame_drive_diagnostics::RunnerFrameDriveDiagnosticsStore;pub use runner_frame_drive_diagnostics::RunnerFrameDriveReason;pub use runner_frame_drive_diagnostics::RunnerFrameDriveReasonCount;pub use runner_frame_drive_diagnostics::RunnerFrameDriveWindowSnapshot;pub use runner_platform_window_receiver_diagnostics::RunnerPlatformWindowReceiverAtCursorSnapshotV1;pub use runner_platform_window_receiver_diagnostics::RunnerPlatformWindowReceiverAtCursorSourceV1;pub use runner_platform_window_receiver_diagnostics::RunnerPlatformWindowReceiverDiagnosticsStore;pub use runner_present_diagnostics::RunnerPresentAggregateSnapshot;pub use runner_present_diagnostics::RunnerPresentDiagnosticsStore;pub use runner_present_diagnostics::RunnerPresentWindowSnapshot;pub use runner_surface_config_diagnostics::RunnerSurfaceConfigDiagnosticsStore;pub use runner_surface_config_diagnostics::RunnerSurfaceConfigWindowSnapshot;pub use runner_surface_lifecycle_diagnostics::RunnerSurfaceLifecycleDiagnosticsStore;pub use runner_surface_lifecycle_diagnostics::RunnerSurfaceLifecycleSnapshot;pub use runner_window_lifecycle_diagnostics::RunnerWindowLifecycleDiagnosticsStore;pub use runner_window_lifecycle_diagnostics::RunnerWindowLifecycleSnapshot;pub use runner_window_style_diagnostics::RunnerWindowAppearanceV1;pub use runner_window_style_diagnostics::RunnerWindowCompositedAlphaSourceV1;pub use runner_window_style_diagnostics::RunnerWindowHitTestClampReasonV1;pub use runner_window_style_diagnostics::RunnerWindowHitTestSourceV1;pub use runner_window_style_diagnostics::RunnerWindowStyleDiagnosticsStore;pub use runner_window_style_diagnostics::RunnerWindowStyleEffectiveSnapshotV1;pub use runner_window_style_diagnostics::clamp_background_material_request;pub use shortcut_routing_diagnostics::ShortcutRoutingDecision;pub use shortcut_routing_diagnostics::ShortcutRoutingOutcome;pub use shortcut_routing_diagnostics::ShortcutRoutingPhase;pub use shortcut_routing_diagnostics::WindowShortcutRoutingDiagnosticsStore;pub use text_interaction_settings::TextInteractionSettings;pub use time::TickId;pub use ui_host::CommandsHost;pub use ui_host::DragHost;pub use ui_host::EffectSink;pub use ui_host::GlobalsHost;pub use ui_host::ModelsHost;pub use ui_host::TimeHost;pub use ui_host::UiHost;pub use when_expr::WhenExpr;pub use window_chrome::WindowResizeDirection;pub use window_command_action_availability::WindowCommandActionAvailabilityService;pub use window_command_availability::WindowCommandAvailability;pub use window_command_availability::WindowCommandAvailabilityService;pub use window_command_enabled::WindowCommandEnabledService;pub use window_command_gating::WindowCommandGatingHandle;pub use window_command_gating::WindowCommandGatingService;pub use window_command_gating::WindowCommandGatingSnapshot;pub use window_command_gating::best_effort_snapshot_for_window;pub use window_command_gating::best_effort_snapshot_for_window_with_input_ctx_fallback;pub use window_command_gating::command_is_enabled_for_window_with_input_ctx_fallback;pub use window_command_gating::snapshot_for_window;pub use window_command_gating::snapshot_for_window_with_input_ctx_fallback;pub use window_global_change_diagnostics::WindowGlobalChangeAggregateSnapshot;pub use window_global_change_diagnostics::WindowGlobalChangeDiagnosticsStore;pub use window_global_change_diagnostics::WindowGlobalChangeNameCount;pub use window_global_change_diagnostics::WindowGlobalChangeWindowSnapshot;pub use window_input_arbitration::WindowInputArbitrationSnapshot;pub use window_input_arbitration::WindowPointerOcclusion;pub use window_input_context::WindowInputContextService;pub use window_input_context::best_effort_input_context_for_window;pub use window_input_context::best_effort_input_context_for_window_with_fallback;pub use window_key_context_stack::WindowKeyContextStackService;pub use window_menu_bar_focus::WindowMenuBarFocusService;pub use window_metrics::apply_window_metrics_event;pub use window_style::ActivationPolicy;pub use window_style::TaskbarVisibility;pub use window_style::WindowBackgroundMaterialRequest;pub use window_style::WindowDecorationsRequest;pub use window_style::WindowHitTestRegionV1;pub use window_style::WindowHitTestRegionsSignatureV1;pub use window_style::WindowHitTestRequestV1;pub use window_style::WindowOpacity;pub use window_style::WindowRole;pub use window_style::WindowStyleRequest;pub use window_style::WindowZLevel;pub use window_style::canonicalize_hit_test_regions_v1;pub use window_style::hit_test_regions_signature_v1;pub use window_text_boundary_mode::WindowTextBoundaryModeHandle;pub use window_text_boundary_mode::WindowTextBoundaryModeService;pub use window_text_input_snapshot::WindowImeSurroundingText;pub use window_text_input_snapshot::WindowTextInputSnapshot;pub use window_text_input_snapshot::WindowTextInputSnapshotService;pub use fret_i18n;
Modules§
- action
- action_
payload - asset_
resolver - capabilities
- clipboard_
diagnostics - command
- command_
dispatch_ diagnostics - commands
- docking_
settings - drag
- effect
- execution
- font_
bootstrap - font_
catalog - font_
catalog_ cache - input
- interaction_
diagnostics - keymap
- menu
- model
- platform_
completion - Portable platform I/O completion payloads.
- platform_
text_ input - redraw_
request_ diagnostics - runner_
accessibility_ diagnostics - runner_
frame_ drive_ diagnostics - runner_
platform_ window_ receiver_ diagnostics - runner_
present_ diagnostics - runner_
surface_ config_ diagnostics - runner_
surface_ lifecycle_ diagnostics - runner_
window_ lifecycle_ diagnostics - runner_
window_ style_ diagnostics - shortcut_
routing_ diagnostics - strict_
runtime - text_
interaction_ settings - time
- ui_host
- when_
expr - window_
chrome - window_
command_ action_ availability - window_
command_ availability - window_
command_ enabled - window_
command_ gating - window_
global_ change_ diagnostics - window_
input_ arbitration - window_
input_ context - window_
key_ context_ stack - window_
menu_ bar_ focus - window_
metrics - window_
style - window_
text_ boundary_ mode - window_
text_ input_ snapshot
Structs§
- Asset
Reload Epoch - Global epoch observed by asset-consuming code when logical assets should be reloaded.
- Asset
Reload Status - Best-effort host-published status for the current automatic asset reload lane.
- Asset
Reload Support - Host-level support flags for development asset reload automation.
- Clipboard
Access Error - Clipboard
Token - External
Drop Token - File
Dialog Token - FrameId
- Image
Color Info - Stable metadata describing how to interpret pixel bytes for streaming images (ADR 0124).
- Image
Update Token - Image
Upload Token - Incoming
Open Data Event - Incoming
Open Token - Share
Sheet Token - Timer
Token
Enums§
- Alpha
Mode - Explicit alpha semantics for image updates (ADR 0124 / ADR 0040).
- Asset
Reload Backend Kind - Configured or active backend for automatic development asset reload.
- Asset
Reload Fallback Reason - Reason why the active automatic reload backend differs from the configured one.
- Chroma
Siting - Clipboard
Access Error Kind - Clipboard
Write Outcome - Color
Primaries - Color
Range - Image
Color Space - Color space metadata for image resources.
- Image
Encoding - Incoming
Open Item - Share
Item - Share
Sheet Outcome - Transfer
Function - YuvMatrix
Functions§
- asset_
reload_ epoch - asset_
reload_ status - asset_
reload_ support - bump_
asset_ reload_ epoch - in_
injected_ event_ scope - Returns
truewhile the current thread is delivering a tooling-owned synthetic event. - set_
asset_ reload_ status - set_
asset_ reload_ support - with_
injected_ event_ scope - Marks a call stack as delivering a synthetic event owned by tooling/runtime plumbing.