Skip to main content

Crate fret_core

Crate fret_core 

Source
Expand description

Portable, backend-agnostic core vocabulary for the Fret workspace.

This crate is intentionally dependency-light. It must remain usable by:

  • core/runtime crates (fret-runtime, fret-ui),
  • ecosystem crates (policy/component layers),
  • and backends/runners (native + web),

without pulling in backend bindings (winit, wgpu, web-sys) or forcing an async runtime.

For module ownership and “where should this go?” guidance, see crates/fret-core/README.md.

Re-exports§

pub use cursor::CursorIcon;
pub use dock::Axis;
pub use dock::DockFloatingWindow;
pub use dock::DockGraph;
pub use dock::DockNode;
pub use dock::DockOpApplyError;
pub use dock::DockOpApplyErrorKind;
pub use dock::DropZone;
pub use dock::EdgeDockDecision;
pub use effects::CustomEffectDescriptorV1;
pub use effects::CustomEffectDescriptorV2;
pub use effects::CustomEffectDescriptorV3;
pub use effects::CustomEffectProgramLanguage;
pub use effects::CustomEffectRegistrationError;
pub use effects::CustomEffectService;
pub use file_dialog::FileDialogDataEvent;
pub use file_dialog::FileDialogFilter;
pub use file_dialog::FileDialogOptions;
pub use file_dialog::FileDialogSelection;
pub use geometry::Corners;
pub use geometry::Edges;
pub use geometry::Point;
pub use geometry::Px;
pub use geometry::Rect;
pub use geometry::RectPx;
pub use geometry::Size;
pub use geometry::Transform2D;
pub use ids::AppWindowId;
pub use ids::ClipboardToken;
pub use ids::DockNodeId;
pub use ids::EffectId;
pub use ids::ExternalDropToken;
pub use ids::FileDialogToken;
pub use ids::FontId;
pub use ids::FrameId;
pub use ids::ImageId;
pub use ids::ImageUpdateToken;
pub use ids::ImageUploadToken;
pub use ids::IncomingOpenToken;
pub use ids::MaterialId;
pub use ids::NodeId;
pub use ids::PathId;
pub use ids::PointerId;
pub use ids::RenderTargetId;
pub use ids::ShareSheetToken;
pub use ids::SvgId;
pub use ids::TextBlobId;
pub use ids::TimerToken;
pub use ids::ViewId;
pub use image::AlphaMode;
pub use image::ChromaSiting;
pub use image::ColorPrimaries;
pub use image::ColorRange;
pub use image::ImageColorInfo;
pub use image::ImageColorSpace;
pub use image::ImageEncoding;
pub use image::TransferFunction;
pub use image::YuvMatrix;
pub use incoming_open::IncomingOpenDataEvent;
pub use incoming_open::IncomingOpenItem;
pub use incoming_open::IncomingOpenKind;
pub use input::ClipboardAccessError;
pub use input::ClipboardAccessErrorKind;
pub use input::ClipboardWriteOutcome;
pub use input::Event;
pub use input::ExternalDragEvent;
pub use input::ExternalDragFile;
pub use input::ExternalDragFiles;
pub use input::ExternalDragKind;
pub use input::ExternalDropDataEvent;
pub use input::ExternalDropFileData;
pub use input::ExternalDropReadError;
pub use input::ExternalDropReadLimits;
pub use input::ImageUpdateDropReason;
pub use input::ImeEvent;
pub use input::InternalDragEvent;
pub use input::InternalDragKind;
pub use input::Modifiers;
pub use input::MouseButton;
pub use input::PointerCancelEvent;
pub use input::PointerCancelReason;
pub use input::PointerEvent;
pub use input::PointerType;
pub use input::keycode_to_ascii_lowercase;
pub use input::MouseButtons;
pub use input::ViewportInputEvent;
pub use input::ViewportInputGeometry;
pub use input::ViewportInputKind;
pub use layout_direction::LayoutDirection;
pub use materials::MaterialBindingShape;
pub use materials::MaterialCatalogTextureKind;
pub use materials::MaterialDescriptor;
pub use materials::MaterialKind;
pub use materials::MaterialRegistrationError;
pub use materials::MaterialService;
pub use panels::PanelKey;
pub use panels::PanelKind;
pub use render_text::RendererBundledFontProfileSnapshot;
pub use render_text::RendererGlyphAtlasPerfSnapshot;
pub use render_text::RendererTextFallbackPolicySnapshot;
pub use render_text::RendererTextFontTraceEntry;
pub use render_text::RendererTextFontTraceFamilyClass;
pub use render_text::RendererTextFontTraceFamilyUsage;
pub use render_text::RendererTextFontTraceSnapshot;
pub use render_text::RendererTextPerfSnapshot;
pub use scene::BlendMode;
pub use scene::Color;
pub use scene::ColorSpace;
pub use scene::CompositeGroupDesc;
pub use scene::DitherMode;
pub use scene::DrawOrder;
pub use scene::EffectChain;
pub use scene::EffectMode;
pub use scene::EffectParamsV1;
pub use scene::EffectQuality;
pub use scene::EffectStep;
pub use scene::GradientStop;
pub use scene::LinearGradient;
pub use scene::MAX_STOPS;
pub use scene::MaterialParams;
pub use scene::Paint;
pub use scene::RadialGradient;
pub use scene::Scene;
pub use scene::SceneOp;
pub use scene::SceneRecording;
pub use scene::SceneValidationError;
pub use scene::SceneValidationErrorKind;
pub use scene::SweepGradient;
pub use scene::TileMode;
pub use scene::UvRect;
pub use semantics::SemanticsActions;
pub use semantics::SemanticsCheckedState;
pub use semantics::SemanticsFlags;
pub use semantics::SemanticsInlineSpan;
pub use semantics::SemanticsInvalid;
pub use semantics::SemanticsLive;
pub use semantics::SemanticsNode;
pub use semantics::SemanticsNodeExtra;
pub use semantics::SemanticsNumeric;
pub use semantics::SemanticsOrientation;
pub use semantics::SemanticsPressedState;
pub use semantics::SemanticsRole;
pub use semantics::SemanticsRoot;
pub use semantics::SemanticsScroll;
pub use semantics::SemanticsSnapshot;
pub use services::UiServices;
pub use share::ShareItem;
pub use share::ShareSheetOutcome;
pub use streaming::StreamingUploadPerfSnapshot;
pub use svg::SvgFit;
pub use svg::SvgService;
pub use text::AttributedText;
pub use text::CaretAffinity;
pub use text::DecorationLineStyle;
pub use text::FontWeight;
pub use text::HitTestResult;
pub use text::StrikethroughStyle;
pub use text::TextAlign;
pub use text::TextCommonFallbackInjection;
pub use text::TextConstraints;
pub use text::TextFontAxisSetting;
pub use text::TextFontFamilyConfig;
pub use text::TextFontFeatureSetting;
pub use text::TextInkMetrics;
pub use text::TextInput;
pub use text::TextInputRef;
pub use text::TextLeadingDistribution;
pub use text::TextLineHeightPolicy;
pub use text::TextLineMetrics;
pub use text::TextMetrics;
pub use text::TextOverflow;
pub use text::TextPaintStyle;
pub use text::TextService;
pub use text::TextShapingStyle;
pub use text::TextSlant;
pub use text::TextSpan;
pub use text::TextStrutStyle;
pub use text::TextStyle;
pub use text::TextStyleRefinement;
pub use text::TextVerticalPlacement;
pub use text::TextWrap;
pub use text::UnderlineStyle;
pub use vector_path::FillRule;
pub use vector_path::FillStyle;
pub use vector_path::PathCommand;
pub use vector_path::PathConstraints;
pub use vector_path::PathMetrics;
pub use vector_path::PathService;
pub use vector_path::PathStyle;
pub use vector_path::StrokeCapV1;
pub use vector_path::StrokeJoinV1;
pub use vector_path::StrokeStyle;
pub use vector_path::StrokeStyleV2;
pub use viewport::ViewportFit;
pub use viewport::ViewportMapped;
pub use viewport::ViewportMapping;
pub use window::ColorScheme;
pub use window::ContrastPreference;
pub use window::ForcedColorsMode;
pub use window::WindowAnchor;
pub use window::WindowFrameClockService;
pub use window::WindowFrameClockSnapshot;
pub use window::WindowLogicalPosition;
pub use window::WindowMetricsService;

Modules§

cursor
dock
effects
file_dialog
Portable file-dialog contracts.
geometry
ids
image
incoming_open
Portable “open-in” / incoming-open contracts.
input
layout_direction
materials
panels
render_text
scene
semantics
services
share
Portable share-sheet (export) contracts.
streaming
svg
text
time
Cross-platform time primitives.
utf
UTF-8 / UTF-16 index conversion helpers.
vector_path
viewport
window

Structs§

DockLayout
DockLayoutBuilder
Convenience helpers to build a DockGraph (runtime dock tree) without manually calling DockGraph::insert_node everywhere.
DockLayoutFloatingWindow
DockLayoutValidationError
DockLayoutWindow
DockRect
DockWindowPlacement
EditorDockLayoutSpec
SplitFractionsUpdate

Enums§

DockLayoutNode
DockLayoutValidationErrorKind
DockOp
High-level docking operations emitted by the UI layer and applied by the app layer.
KeyCode
Code is the physical position of a key.

Constants§

DOCK_LAYOUT_VERSION