Moving flexbox behind a feature flag (#414)
1//! Commonly used types
2
3#[cfg(feature = "flexbox")]
4use crate::{
5 compute::LayoutAlgorithm,
6 layout::{SizeAndBaselines, SizingMode},
7};
8
9/// Apply the flexbox algorithm and recursively layout the specified node
10#[cfg(feature = "flexbox")]
11#[inline(always)]
12pub fn layout_flexbox(
13 tree: &mut impl LayoutTree,
14 node: Node,
15 known_dimensions: Size<Option<f32>>,
16 parent_size: Size<Option<f32>>,
17 available_space: Size<AvailableSpace>,
18 sizing_mode: SizingMode,
19) -> SizeAndBaselines {
20 crate::compute::flexbox::FlexboxAlgorithm::perform_layout(
21 tree,
22 node,
23 known_dimensions,
24 parent_size,
25 available_space,
26 sizing_mode,
27 )
28}
29
30pub use crate::{
31 geometry::{Line, Rect, Size},
32 layout::Layout,
33 node::{Node, Taffy},
34 style::{
35 AlignContent, AlignItems, AlignSelf, AvailableSpace, Dimension, Display, JustifyContent, JustifyItems,
36 JustifySelf, LengthPercentage, LengthPercentageAuto, Position, Style,
37 },
38 style_helpers::{
39 auto, fit_content, max_content, min_content, percent, points, zero, FromFlex, FromPercent, FromPoints,
40 TaffyAuto, TaffyFitContent, TaffyMaxContent, TaffyMinContent, TaffyZero,
41 },
42 tree::LayoutTree,
43};
44
45#[cfg(feature = "flexbox")]
46pub use crate::style::{FlexDirection, FlexWrap};
47
48#[cfg(feature = "grid")]
49pub use crate::style::{
50 GridAutoFlow, GridPlacement, GridTrackRepetition, MaxTrackSizingFunction, MinTrackSizingFunction,
51 NonRepeatedTrackSizingFunction, TrackSizingFunction,
52};
53#[cfg(feature = "grid")]
54pub use crate::style_helpers::{
55 evenly_sized_tracks, flex, fr, line, minmax, repeat, span, TaffyGridLine, TaffyGridSpan,
56};