v0.3.0
π v0.3.0 β Major API Overhaul and CSV/Deduplication Enhancements
This release introduces major improvements and breaking changes to the crate, making the API more robust, flexible, and developer-friendly.
Special thanks to @jennydaman for their significant contributions and feedback, which shaped this release and the crate overall. π
β¨ Highlights
-
Deduplication API
Addedfind_duplicates_with_sources()for source-aware deduplication when sources are managed outside the crate. -
CSV Parser Enhancements
More powerful CSV parsing with support for quote configuration, trimming, flexible parsing, memory optimization, additional header aliases, validation, and automatic format detection. -
Error Handling Overhaul (Breaking)
Completely restructured error system with line/column tracking and semantic error types (Syntax,MissingValue,BadValue,MultipleValues).
Empty input now cleanly returnsOk(Vec::new()). -
Author Struct Redesign (Breaking)
Authornow supports richer name handling and multiple affiliations. Middle names and mononyms are consistently parsed across formats. -
Cleaner Core Data Structures (Breaking)
- Removed
Citation.id(ID management should be done at the application level). - Removed
Citation.source(source tracking now handled by the caller). - Removed
Citation.year(usedate.yearinstead). - Removed
.with_source()methods from all parsers.
- Removed
-
API Changes (Breaking)
detect_and_parse(content, source)βdetect_and_parse(content)CitationParser::parsenow returnsResult<Vec<Citation>, ParseError>instead ofCitationError.
-
Bug Fixes
- Fixed critical bug where extra CSV fields were ignored instead of being populated in
Citationstructs.
- Fixed critical bug where extra CSV fields were ignored instead of being populated in
π Migration Guide
This release contains breaking changes to core types (Citation, Author, CitationError) and functions.
Please see the full migration guide in the changelog for detailed code examples on upgrading from 0.2.x to 0.3.x.