Skip to main content

Crate fret_runtime

Crate fret_runtime 

Source
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

§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§

AssetReloadEpoch
Global epoch observed by asset-consuming code when logical assets should be reloaded.
AssetReloadStatus
Best-effort host-published status for the current automatic asset reload lane.
AssetReloadSupport
Host-level support flags for development asset reload automation.
ClipboardAccessError
ClipboardToken
ExternalDropToken
FileDialogToken
FrameId
ImageColorInfo
Stable metadata describing how to interpret pixel bytes for streaming images (ADR 0124).
ImageUpdateToken
ImageUploadToken
IncomingOpenDataEvent
IncomingOpenToken
ShareSheetToken
TimerToken

Enums§

AlphaMode
Explicit alpha semantics for image updates (ADR 0124 / ADR 0040).
AssetReloadBackendKind
Configured or active backend for automatic development asset reload.
AssetReloadFallbackReason
Reason why the active automatic reload backend differs from the configured one.
ChromaSiting
ClipboardAccessErrorKind
ClipboardWriteOutcome
ColorPrimaries
ColorRange
ImageColorSpace
Color space metadata for image resources.
ImageEncoding
IncomingOpenItem
ShareItem
ShareSheetOutcome
TransferFunction
YuvMatrix

Functions§

asset_reload_epoch
asset_reload_status
asset_reload_support
bump_asset_reload_epoch
in_injected_event_scope
Returns true while 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.