use crate::{_impl_init, TextCursor, TextUnit};
#[doc = crate::_tags!(text layout result)]
#[doc = crate::_doc_location!("text/layout")]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash)]
pub enum TextFit {
Full,
Partial,
#[default]
None,
}
_impl_init![ConstInit: Self::None => TextFit];
#[doc = crate::_tags!(text layout result)]
#[doc = crate::_doc_location!("text/layout")]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub struct TextLayoutStep {
pub span_count: usize,
pub consumed: TextUnit,
pub carry: Option<TextCursor>,
pub fit: TextFit,
}
impl TextLayoutStep {
pub const fn new(
span_count: usize,
consumed: TextUnit,
carry: Option<TextCursor>,
fit: TextFit,
) -> Self {
TextLayoutStep { span_count, consumed, carry, fit }
}
}
_impl_init![ConstInit: Self::new(0, TextUnit::INIT, None, TextFit::INIT) => TextLayoutStep];