# Code mapping utility types and traits.
[](https://github.com/timothee-haudebourg/locspan/actions)
[](https://crates.io/crates/locspan)
[](https://github.com/timothee-haudebourg/locspan#license)
[](https://docs.rs/locspan)
This library provides essentials types and trait to locate syntax elements.
- `Span` describes a byte range in a source file. It is very similar to
`Range<usize>` but is not an iterator and implements `Copy`. It also
provides an intuitive API to write lexers and parsers.
- `Location<F>` combines a `Span` with a file identifier `F` to pin point a
syntactic element in a source file.
The crate integrates well with
[`codespan-reporting`](https://crates.io/crates/codespan-reporting) library
to render beautiful error reports. Enable the `reporting` feature to add
dedicated methods to convert a `Location` value into a
`codespan_reporting::diagnostic::Label`.
## License
Licensed under either of
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any
additional terms or conditions.