summaryrefslogblamecommitdiffstats
path: root/core/src/length.rs
blob: 63ba62078ef17189bc46c4de45eaf25cce0e03b2 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                                            
                                              
                 
                                    
         

                                      
           

                                    

               

             






                                                                            







                                      
/// The strategy used to fill space in a specific dimension.
#[derive(Debug, Clone, Copy, PartialEq, Hash)]
pub enum Length {
    /// Fill all the remaining space
    Fill,

    /// Fill the least amount of space
    Shrink,

    /// Fill a fixed amount of space
    Units(u16),
}

impl Length {
    /// Returns the _fill factor_ of the [`Length`].
    ///
    /// The _fill factor_ is a relative unit describing how much of the
    /// remaining space should be filled when compared to other elements. It
    /// is only meant to be used by layout engines.
    ///
    /// [`Length`]: enum.Length.html
    pub fn fill_factor(&self) -> u16 {
        match self {
            Length::Fill => 1,
            Length::Shrink => 0,
            Length::Units(_) => 0,
        }
    }
}