#![warn(missing_docs, rustdoc::broken_intra_doc_links)]
mod analysis;
mod ast;
pub mod diagnostic_codes;
mod error;
mod metadata;
mod parser;
mod pseudolocalization;
mod serialize;
mod utils;
pub use analysis::{
IcuAnalysis, IcuArgument, IcuArgumentKind, IcuCompatibilityOptions, IcuCompatibilityReport,
IcuDiagnostic, IcuDiagnosticSeverity, IcuFormatter, IcuFormatterSupport, IcuPluralSummary,
IcuSelectSummary, IcuStyleKind, IcuTagSummary, analyze_icu, compare_icu_messages,
extract_argument_names, extract_tag_names, validate_icu_formatter_support,
validate_icu_formatter_support_from_analysis,
};
pub use ast::{IcuMessage, IcuNode, IcuOption, IcuPluralKind};
pub use diagnostic_codes::DiagnosticCode;
pub use error::{IcuErrorKind, IcuParseError, IcuPosition};
pub use metadata::{
MessageArgumentFormatMetadata, MessageArgumentKind, MessageArgumentMetadata,
MessageArgumentMetadataInput, MessageFormatStyleKind, MessageMetadata,
MessageMetadataDiagnostic, MessageMetadataInput, MessageMetadataValidationReport,
MessageOriginMetadata, MessageSelectorKind, MessageSelectorMetadata,
derive_message_metadata_from_icu, normalize_message_metadata, validate_message_metadata,
};
pub use parser::{IcuParserOptions, parse_icu, parse_icu_with_options};
pub use pseudolocalization::{
IcuPseudolocalizationOptions, pseudolocalize_icu, pseudolocalize_icu_message,
};
pub use serialize::stringify_icu;
pub use utils::{
extract_variables, has_plural, has_select, has_select_ordinal, has_tag, validate_icu,
};