diff options
Diffstat (limited to 'core/src/align.rs')
-rw-r--r-- | core/src/align.rs | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/core/src/align.rs b/core/src/align.rs new file mode 100644 index 00000000..5876e0f8 --- /dev/null +++ b/core/src/align.rs @@ -0,0 +1,47 @@ +/// Alignment on the cross axis of a container. +/// +/// * On a [`Column`], it describes __horizontal__ alignment. +/// * On a [`Row`], it describes __vertical__ alignment. +/// +/// [`Column`]: widget/struct.Column.html +/// [`Row`]: widget/struct.Row.html +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum Align { + /// Align at the start of the cross axis. + Start, + + /// Align at the center of the cross axis. + Center, + + /// Align at the end of the cross axis. + End, + + /// Stretch over the cross axis. + Stretch, +} + +#[cfg(feature = "stretch")] +#[doc(hidden)] +impl From<Align> for stretch::style::AlignItems { + fn from(align: Align) -> Self { + match align { + Align::Start => stretch::style::AlignItems::FlexStart, + Align::Center => stretch::style::AlignItems::Center, + Align::End => stretch::style::AlignItems::FlexEnd, + Align::Stretch => stretch::style::AlignItems::Stretch, + } + } +} + +#[cfg(feature = "stretch")] +#[doc(hidden)] +impl From<Align> for stretch::style::AlignSelf { + fn from(align: Align) -> Self { + match align { + Align::Start => stretch::style::AlignSelf::FlexStart, + Align::Center => stretch::style::AlignSelf::Center, + Align::End => stretch::style::AlignSelf::FlexEnd, + Align::Stretch => stretch::style::AlignSelf::Stretch, + } + } +} |