Skip to main content

frus_core/
lib.rs

1//! `frus-core` — the fundamental types shared by the whole framework.
2//!
3//! This crate holds **no logic**: only data types (geometry, colour) with no
4//! dependency on rendering or on any platform. It is the common foundation for
5//! `frus-gpu`, `frus-layout` and the rest, which keeps those layers from
6//! duplicating types or coupling to one another.
7
8#![deny(missing_docs)]
9
10// The README's example is compiled and run by `cargo test --doc`, so it cannot rot.
11#[cfg(doctest)]
12#[doc = include_str!("../README.md")]
13pub struct ReadmeDoctests;
14
15pub mod animation;
16mod color;
17mod colors;
18mod decoration;
19mod decoration_image;
20mod filter;
21mod geometry;
22mod gradient;
23mod hct;
24mod image;
25mod path;
26mod platform;
27mod responsive;
28mod scene;
29mod semantics;
30mod shape;
31mod text_style;
32
33pub use animation::{
34    Animatable, Animation, AnimationController, BouncingScrollSimulation, ClampedSimulation,
35    ClampingScrollSimulation, Curve, Curved, FrictionSimulation, Lerp, PolynomialFit, Simulation,
36    SpringDescription, SpringSimulation, Status, Tolerance, Tween, TweenSequence, Velocity,
37    VelocityEstimate, VelocityStrategy, VelocityTracker, BOUNCING_DRAG, BOUNCING_FLING_WEIGHTS,
38    CLAMPING_FRICTION, DESKTOP_FLING_WEIGHTS, MAX_SPRING_TRANSFER_VELOCITY,
39};
40pub use color::{surface_tint_opacity, Color};
41pub use colors::{Colors, MaterialColor};
42pub use decoration::{
43    paint_elevation, Border, BorderDirectional, BorderRadius, BorderRadiusDirectional, BoxBorder,
44    BoxDecoration, BoxShadow, BoxShape,
45};
46pub use decoration_image::{
47    apply_box_fit, DecorationImage, FittedSizes, ImagePiece, ImageRepeat, MAX_IMAGE_TILES,
48};
49pub use filter::{
50    Backdrop, BlendMode, ColorFilter, FractionalMask, ImageFilter, LayerFilter, MaskShader,
51    ShaderMask,
52};
53pub use geometry::{
54    fits, Affine, Alignment, AlignmentDirectional, AlignmentGeometry, Insets, InsetsDirectional,
55    InsetsGeometry, Point, Rect, Size, TextDirection, WindowInsets,
56};
57pub use gradient::{tile, Gradient, LinearGradient, RadialGradient, SweepGradient, TileMode};
58pub use hct::{Hct, TonalPalette};
59pub use image::{
60    cached, fetched, forget_cached_images, forget_fetched_images, image_cache_budget,
61    image_cache_bytes, images_in_flight, set_image_cache_budget, set_image_fetcher, BoxFit,
62    Fetched, ImageData, ImageFetcher, ImageHandle, DEFAULT_IMAGE_CACHE_BYTES,
63};
64pub use path::{Path, PathVerb, Stroke, StrokeCap};
65pub use platform::{
66    __set_detected_target_platform, debug_default_target_platform_override,
67    default_target_platform, set_debug_default_target_platform_override, Platform, TargetPlatform,
68    IS_WEB,
69};
70pub use responsive::{Orientation, SizeClass};
71pub use scene::{BlurStyle, ClipShape, LayerTransform, PathGradient, Primitive, Scene, TextBlock};
72pub use semantics::{Role, SemanticsProperties, Toggled};
73pub use shape::{BorderSide, ShapeBorder};
74pub use text_style::{
75    install_text_scale, text_scale, with_text_scale, FontFamily, FontWeight, ResolvedTextStyle,
76    TextAlign, TextDecoration, TextOverflow, TextRun, TextScaleGuard, TextSpan, TextStyle,
77    DEFAULT_LINE_HEIGHT, DEFAULT_TEXT_SIZE,
78};