fastobo 0.7.3

Faultless AST for Open Biomedical Ontologies.
Documentation
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).


## [Unreleased]

[Unreleased]: https://github.com/fastobo/fastobo/compare/v0.7.3...HEAD


## [v0.7.3] - 2019-09-17

[v0.7.3]: https://github.com/fastobo/fastobo/compare/v0.7.2...v0.7.3

### Added
- `FrameReader.as_ref` and `FrameReader.as_mut` to get a reference to
  the underlying `BufRead`.


## [v0.7.2] - 2019-08-27

[v0.7.2]: https://github.com/fastobo/fastobo/compare/v0.7.1...v0.7.2

### Changed
- Bumped `syn` and `quote` to version `1.0` in derive macros.

### Added
- Added BOSC 2019 poster reference to `README.md`.


## [v0.7.1] - 2019-08-08

[v0.7.1]: https://github.com/fastobo/fastobo/compare/v0.7.0...v0.7.1

### Changed
- Updated documentation.


## [v0.7.0] - 2019-08-06

[v0.7.0]: https://github.com/fastobo/fastobo/compare/v0.6.1...v0.7.0

### Added
- `Line.as_inner_mut` method (alias for `Line.as_mut`).
- `OboDoc.is_empty` method to check if an ontology is empty.
- `fastobo::from_file`, `fastobo::from_reader`, `fastobo::from_str`,
  `fastobo::to_writer` and `fastobo::to_file`.
- `AsRef<Ident>` implementation for `Ident`.

### Changed
- Require exact `pest` version `2.1.1` because of unsafe hack to access
  `PestError` fields.

### Removed
- `OboDoc::from_file` and `OboDoc::from_stream` methods (replaced with
  `fastobo::from_file` and `fastobo::from_reader`).

### Fixed
- Serialization of `UnquotedString` not escaping `!` characters.


## [v0.6.1] - 2019-07-24

[v0.6.1]: https://github.com/fastobo/fastobo/compare/v0.6.0...v0.6.1

### Changed
- Bumped internal `url` dependency to `v2.0.0`.


## [v0.6.0] - 2019-07-23

[v0.6.0]: https://github.com/fastobo/fastobo/compare/v0.5.0...v0.6.0

### Added
- `fraction` method to `Iso8601DateTime`.

### Fixed
- `Iso8601DateTime` now support parsing ISO datetimes with fractional seconds.


## [v0.5.0] - 2019-07-15

[v0.5.0]: https://github.com/fastobo/fastobo/compare/v0.4.4...v0.5.0

### Changed
- Transitioned to [`err-derive`]https://docs.rs/err-derive for error 
  management instead of `failure`.


## [v0.4.4] - 2019-07-08

[v0.4.4]: https://github.com/fastobo/fastobo/compare/v0.4.3...v0.4.4

### Added
- `fastobo::visit::IdCompactor` and `fastobo::visit::IdDecompactor` to handle
  url to prefixed ident conversion in OBO documents.


## [v0.4.3] - 2019-06-17

[v0.4.3]: https://github.com/fastobo/fastobo/compare/v0.4.2...v0.4.3

### Fixed
- `HeaderFrame.sort` to avoid shuffling `OwlAxiom` header clauses.

### Added
- `HeaderFrame.merge_owl_axioms` method to merge OWL axioms in a
  header frame.


## [v0.4.2] - 2019-06-13

[v0.4.2]: https://github.com/fastobo/fastobo/compare/v0.4.1...v0.4.2

### Fixed
- `Cardinality::to_error` not returning an error for `ZeroOrOne` clauses
  present twice in a frame.


## [v0.4.1] - 2019-06-13

[v0.4.1]: https://github.com/fastobo/fastobo/compare/v0.4.0...v0.4.1

### Fixed
- `TermClause::PropertyValue` having invalid `ZeroOrOne` cardinality


## [v0.4.0] - 2019-06-12

[v0.4.0]: https://github.com/fastobo/fastobo/compare/v0.3.0...v0.4.0

### Added
- Parsing iterator implementation in `fastobo::parser::FrameReader`
- `fastobo-derive-internal` proc-macros to reduce code boilerplate.
- `OboClause` and `OboFrame` traits with common operations for all
  clauses/frames in an OBO document.
- `Cardinality` enum which can be retrieved from any `OboClause` variant
  with the `cardinality` method.
- `OboDoc.is_fully_labeled` semantic check.

### Changed
- Decomposed errors into smaller errors: the main `Error` now wraps `CardinalityError`,
  `IOError` and `SyntaxError` which can be accessed independently.

### Removed
- Removed `OboSemantics` trait and added functions to `OboDoc` directly.

### Fixed
- Bug causing `XrefList` to be parsed incorrectly when having a comma in their
  quote-enclosed description.


## [v0.3.0] - 2019-05-27

[v0.3.0]: https://github.com/fastobo/fastobo/compare/v0.2.1...v0.3.0

### Changed
- Renamed variants of `PropertyValue` and `PropVal` enums.


## [v0.2.1] - 2019-05-24

[v0.2.1]: https://github.com/fastobo/fastobo/compare/v0.2.0...v0.2.1

### Fixed
- `InstanceFrame::from_pair_unchecked` being implemented but not used in
  `EntityFrame::from_pair_unchecked`, causing a panic when parsing an OBO
  document with instance frames.


## [v0.2.0] - 2019-05-14

[v0.2.0]: https://github.com/fastobo/fastobo/compare/v0.1.1...v0.2.0

### Added
- `Orderable` trait for syntax structs that must be serialized in a
  particular order (e.g. `EntityFrame`, `XrefList`, `OboDoc`, ...).
- `Identified` trait for syntax structs that have an identifier
  (e.g. `EntityFrame`, `Qualifier`, ...).
- Support for `is_asymmetric` typedef clause.

### Fixed
- `Error::IOError` and `Error::ParserError` will now return their inner
  error when calling the [`Fail.cause`] method.

[`Fail.cause`]: https://docs.rs/failure/0.1.5/failure/trait.Fail.html#method.cause


## [v0.1.1] - 2019-05-10

[v0.1.1]: https://github.com/fastobo/fastobo/compare/v0.1.0...v0.1.1

### Added
- [`PartialOrd`] implementation for header clauses, identifiers, `Synonym`
  and `PropertyValue`.

[`PartialOrd`]: https://doc.rust-lang.org/std/cmp/trait.PartialOrd.html

### Fixed
- Removed missing `docs` feature from `docs.rs` build metadata.
- Changed links to refer to the new outsourced repository
  [`fastobo/fastobo`]https://github.com/fastobo/fastobo.


## [v0.1.0] - 2019-05-08

[v0.1.0]: https://github.com/fastobo/fastobo/compare/40aa9b0...v0.1.0

Initial release.