# Code mapping utility types and traits.
[](https://github.com/timothee-haudebourg/locspan/actions)
[](https://crates.io/crates/locspan)
[](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 the
[`miette`](https://crates.io/crates/miette) library when the `miette`
feature is enabled.
## 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
Read the [CONTRIBUTING.md](CONTRIBUTING.md) file before submitting any 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.