bible_io_references/
lib.rs1#![forbid(unsafe_code)]
2#![warn(clippy::all, missing_docs)]
3#![doc = include_str!("../README.md")]
4
5pub mod book;
6pub mod error;
7pub mod extractor;
8pub mod formatter;
9pub mod identifiers;
10pub mod language;
11mod language_data;
12pub mod normalize;
13pub mod parser;
14pub mod passage;
15pub mod reference;
16#[cfg(feature = "serde")]
17mod serde_impl;
18
19pub use book::{Book, ParseBookError};
20pub use error::{ParseError, ParseErrorKind};
21pub use extractor::{
22 DEFAULT_MAX_LOOKAHEAD, DEFAULT_MAX_LOOKBEHIND, ExtractorConfigError, ExtractorWindow,
23 PassageMatch, ReferenceExtractor, ReferenceExtractorBuilder,
24};
25pub use formatter::{
26 BookNameStyle, FormattedBook, FormattedPassage, FormattedReference, ReferenceFormatter,
27};
28pub use identifiers::{
29 IdentifierError, IdentifierErrorKind, IdentifierFormat, MachineIdentifiers,
30 book_from_osis_identifier, book_from_usfm_identifier, reference_from_osis_identifier,
31 reference_from_usfm_identifier,
32};
33pub use language::{Language, ParseLanguageError};
34pub use language_data::{LocalizedBook, localized_books, localized_name, long_name, short_name};
35pub use parser::{
36 AUTO_LANGUAGE_PRECEDENCE, AmbiguityPolicy, BookCandidate, BookMatch, ParseMetadata, Parsed,
37 ParserBuilder, ReferenceParser, auto_language_collisions,
38};
39pub use passage::{
40 BookPassage, ChapterPassage, DEFAULT_SINGLE_CHAPTER_BOOKS, Passage, PassageBuildError,
41 PassageParser, PassageSequence, VersePassage,
42};
43pub use reference::{
44 Coordinate, CoordinateError, MAX_CHAPTER_NUMBER, MAX_VERSE_NUMBER, RangeOrderError, Reference,
45 VerseRange, VerseRef,
46};
47
48pub type VerseRangeRef = VerseRange;
50
51pub fn verse_ref_from_str(input: &str) -> Result<VerseRef, ParseError> {
55 input.parse()
56}
57
58pub fn verse_range_ref_from_str(input: &str) -> Result<VerseRangeRef, ParseError> {
62 input.parse()
63}
64
65pub fn parse_reference(input: &str) -> Result<Reference, ParseError> {
67 input.parse()
68}