#![allow(
dead_code,
reason = "wire structs deserialize fields used only via serde re-serialize / JSON forwarding"
)]
#![allow(
clippy::module_name_repetitions,
clippy::needless_pass_by_value,
clippy::too_many_lines,
clippy::map_unwrap_or,
clippy::redundant_else,
clippy::manual_let_else,
clippy::manual_contains,
clippy::semicolon_if_nothing_returned,
clippy::collapsible_if,
clippy::single_match_else,
clippy::match_same_arms,
clippy::needless_pass_by_ref_mut,
clippy::unnecessary_wraps,
clippy::doc_markdown,
clippy::cast_possible_truncation,
clippy::cast_possible_wrap,
clippy::cast_sign_loss,
clippy::needless_borrow,
clippy::needless_borrows_for_generic_args,
clippy::redundant_closure_for_method_calls,
clippy::wildcard_in_or_patterns,
clippy::default_trait_access,
clippy::option_if_let_else,
clippy::needless_collect,
clippy::manual_unwrap_or,
clippy::manual_unwrap_or_default,
clippy::implicit_clone,
clippy::redundant_clone,
clippy::single_char_pattern,
clippy::if_not_else,
clippy::struct_excessive_bools,
clippy::struct_field_names,
clippy::trivially_copy_pass_by_ref,
clippy::needless_lifetimes,
clippy::missing_fields_in_debug,
clippy::field_reassign_with_default,
clippy::cloned_instead_of_copied,
clippy::useless_conversion,
clippy::let_unit_value,
clippy::similar_names,
clippy::unused_self,
clippy::ignored_unit_patterns,
clippy::redundant_pattern_matching,
clippy::redundant_pattern,
clippy::semicolon_inside_block,
clippy::cast_lossless,
clippy::ref_binding_to_reference,
clippy::manual_map,
clippy::assigning_clones,
clippy::manual_string_new,
clippy::used_underscore_binding,
clippy::unreadable_literal,
clippy::allow_attributes_without_reason,
clippy::enum_variant_names,
clippy::match_wildcard_for_single_variants,
reason = "shape mirrors ai-sdk for review parity; refactors would drift from upstream"
)]
mod convert_prompt;
mod finish_reason;
mod model;
mod options;
mod parse_response;
mod prepare_tools;
mod stream;
mod usage;
mod wire;
pub use model::XaiResponsesLanguageModel;