utils::grid

Function is_enclosed

Source
pub fn is_enclosed<T>(
    rows: usize,
    cols: usize,
    grid: &[T],
    is_wall: impl Fn(&T) -> bool,
) -> bool
Expand description

Checks that the provided grid has walls on each edge.

ยงExamples

assert_eq!(
    is_enclosed(5, 6, &[
        b'#', b'#', b'#', b'#', b'#', b'#',
        b'#', b'.', b'.', b'.', b'.', b'#',
        b'#', b'.', b'.', b'.', b'.', b'#',
        b'#', b'.', b'.', b'.', b'.', b'#',
        b'#', b'#', b'#', b'#', b'#', b'#',
    ], |&b| b == b'#'),
    true,
);
assert_eq!(
    is_enclosed(5, 6, &[
        b'#', b'#', b'#', b'#', b'#', b'#',
        b'#', b'.', b'.', b'.', b'.', b'#',
        b'#', b'.', b'.', b'.', b'.', b'#',
        b'#', b'.', b'.', b'.', b'.', b'.',
        b'#', b'#', b'#', b'#', b'#', b'#',
    ], |&b| b == b'#'),
    false,
);