fancy-table 0.4.3

Fancy tables with bells and whistles
Documentation
#[cfg(test)]
mod test_wrapping {
    use fancy_table::JustedString;
    use fancy_table::Justify;

    #[test]
    fn justify_center_fit_hspace() {
        assert_eq!(
            JustedString::wrapping("Ala ma kota").justify(6, 2, Justify::Center),
            vec!["Ala ma", " kota "]
        );
    }

    #[test]
    fn justify_center_enough_hspace() {
        assert_eq!(
            JustedString::wrapping("Ala ma kota").justify(10, 2, Justify::Center),
            vec!["  Ala ma  ", "   kota   "]
        );
    }

    #[test]
    fn justify_center_no_enough_vspace() {
        assert_eq!(
            JustedString::wrapping("Ala ma kota").justify(8, 1, Justify::Center),
            vec![" Ala ma "]
        )
    }

    #[test]
    fn justify_center_minimal_hspace() {
        assert_eq!(
            JustedString::wrapping("Ala ma kota").justify(1, 3, Justify::Center),
            vec!["A", "m", "k"]
        );
    }

    #[test]
    fn justify_center_no_enough_hspace() {
        assert_eq!(
            JustedString::wrapping("Ala ma kota").justify(2, 3, Justify::Center),
            vec!["Al", "ma", "ko"]
        );
    }

    #[test]
    fn justify_center_no_enough_hspace_and_vspace() {
        assert_eq!(
            JustedString::wrapping("Ala ma kota").justify(1, 1, Justify::Center),
            vec!["A"]
        );
    }

    #[test]
    fn justify_left_enough_hspace() {
        assert_eq!(
            JustedString::wrapping("Ala ma kota").justify(10, 2, Justify::Left),
            vec!["Ala ma    ", "kota      "]
        );
    }

    #[test]
    fn justify_right_enough_hspace() {
        assert_eq!(
            JustedString::wrapping("Ala ma kota").justify(10, 2, Justify::Right),
            vec!["    Ala ma", "      kota"]
        );
    }

    #[test]
    fn justify_right_not_enough_hspace() {
        assert_eq!(
            JustedString::wrapping("Ala ma kota").justify(5, 2, Justify::Right),
            vec!["  Ala", "   ma"]
        );
    }

    #[test]
    fn justify_line_with_wrapping() {
        assert_eq!(
            JustedString::wrapping("Ala ma kota\nA kot ma Alę").justify(7, 5, Justify::Left),
            vec!["Ala ma ", "kota   ", "A kot  ", "ma Alę "]
        );
    }

    #[test]
    fn justify_line_with_enough_hspace() {
        assert_eq!(
            JustedString::truncating("Ala ma kota\nA kot ma Alę").justify(15, 2, Justify::Right),
            vec!["    Ala ma kota", "   A kot ma Alę"]
        );
    }

    #[test]
    fn justify_line_with_not_enough_hspace() {
        assert_eq!(
            JustedString::truncating("Ala ma kota\nA kot ma Alę").justify(8, 2, Justify::Left),
            vec!["Ala ma k", "A kot ma"]
        );
    }

    #[test]
    fn justify_line_with_not_enough_hspace_and_vspace() {
        assert_eq!(
            JustedString::truncating("Ala ma kota\nA kot ma Alę\nOna go kocha\nA on ją wcale")
                .justify(8, 3, Justify::Center),
            vec!["Ala ma k", "A kot ma", "Ona go k"]
        );
    }
}

#[cfg(test)]
mod test_wrapping_with_ansi_codes {
    use fancy_table::JustedString;
    use fancy_table::Justify;

    #[test]
    fn justify_with_ansi_codes() {
        assert_eq!(
            JustedString::wrapping("Ala ma\x1b[31m kota").justify(1, 2, Justify::Center),
            vec!["A", "m"]
        );
        assert_eq!(
            JustedString::wrapping("Ala ma \x1b[31mkota a kot ma Alę").justify(
                6,
                2,
                Justify::Center
            ),
            vec!["Ala ma", "\x1b[31mkota a\x1b[0m"]
        );
        assert_eq!(
            JustedString::wrapping("Ala ma\x1b[31m kota").justify(11, 2, Justify::Center),
            vec!["Ala ma\x1b[31m kota\x1b[0m"]
        );
        assert_eq!(
            JustedString::wrapping("Ala ma \x1b[33mkota \"\x1b[0m").justify(12, 1, Justify::Center),
            vec!["Ala ma \x1b[33mkota \x1b[0m"]
        );
        assert_eq!(
            JustedString::wrapping("\x1b[31mAla\x1b[0m ma \x1b[31mkota\x1b[0m").justify(
                6,
                2,
                Justify::Center
            ),
            vec!["\x1b[31mAla\x1b[0m ma", " \x1b[31mkota\x1b[0m "]
        );
        assert_eq!(
            JustedString::wrapping("\x1b[31mAla\nkot\x1b[0m").justify(4, 5, Justify::Left),
            vec!["\x1b[31mAla \x1b[0m", "\x1b[31mkot\x1b[0m ",]
        );
        assert_eq!(
            JustedString::wrapping("\x1b[31mAla\nkot").justify(4, 5, Justify::Left),
            vec!["\x1b[31mAla \x1b[0m", "\x1b[31mkot \x1b[0m",]
        );
        assert_eq!(
            JustedString::wrapping("\x1b[31mAla ma kota\nA kot\x1b[0m ma Alę").justify(
                7,
                5,
                Justify::Left
            ),
            vec![
                "\x1b[31mAla ma \x1b[0m",
                "\x1b[31mkota   \x1b[0m",
                "\x1b[31mA kot\x1b[0m  ",
                "ma Alę "
            ]
        );
    }
}