An implementation of Adam Millazo's FOV algorithm
To use it you must implement the VisibilityMap trait on your map type, or use the built in VisibilityMap2d. Then you can call fov::compute with your map which will populate visible tiles based on the map's opaque tiles.
Example
use *;
// Create a 50x50 visibility map
let mut map = default;
// Set the tile at (15,15) to opaque
map.opaque = true;
// Compute our visible tiles and add them to the map
compute;
// The space directly above our opaque tile is not visible
assert!;

Taken from the "terminal" example