#![cfg_attr(not(feature = "std"), no_std)]
#![deny(rust_2018_idioms, unused_qualifications)]
#![warn(unreachable_pub)]
#![allow(non_camel_case_types, unstable_name_collisions, clippy::all)]
#[allow(unused_extern_crates)]
#[cfg(feature = "alloc")]
extern crate alloc;
mod traits {
#[allow(unreachable_pub)]
pub trait Sealed<T: ?Sized> {}
impl<T: ?Sized> Sealed<T> for T {}
macro_rules! impl_trait_for_all {
($trait:ident => $($type:ty)+) => {$(
impl $trait for $type {}
)+};
}
#[allow(unreachable_pub)]
pub trait Integer: Sized {}
impl_trait_for_all!(Integer => i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize);
#[allow(unreachable_pub)]
pub trait SignedInteger {}
impl_trait_for_all!(SignedInteger => i8 i16 i32 i64 i128 isize);
#[allow(unreachable_pub)]
pub trait UnsignedInteger {}
impl_trait_for_all!(UnsignedInteger => u8 u16 u32 u64 u128 usize);
#[allow(unreachable_pub)]
pub trait Float {}
impl_trait_for_all!(Float => f32 f64);
}
mod pattern;
#[cfg(shim = "1.37")]
mod v1_37;
#[cfg(shim = "1.38")]
mod v1_38;
#[cfg(shim = "1.40")]
mod v1_40;
#[cfg(shim = "1.41")]
mod v1_41;
#[cfg(shim = "1.42")]
mod v1_42;
#[cfg(shim = "1.43")]
mod v1_43;
#[cfg(shim = "1.44")]
mod v1_44;
#[cfg(shim = "1.45")]
mod v1_45;
#[cfg(shim = "1.46")]
mod v1_46;
#[cfg(shim = "1.47")]
mod v1_47;
#[cfg(shim = "1.48")]
mod v1_48;
#[cfg(shim = "1.49")]
mod v1_49;
#[cfg(shim = "1.50")]
mod v1_50;
#[cfg(shim = "1.51")]
mod v1_51;
#[cfg(shim = "1.52")]
mod v1_52;
#[cfg(shim = "1.53")]
mod v1_53;
#[doc(hidden)]
pub mod prelude {
#[cfg(shim = "1.39")]
pub use core::unimplemented as todo;
#[cfg(shim = "1.42")]
pub use crate::matches;
#[cfg(shim = "1.37")]
pub use crate::v1_37::{
Cell_v1_37, Cell_v1_37_, DoubleEndedIterator_v1_37, Option_v1_37, Slice_v1_37,
};
#[cfg(all(shim = "1.38", feature = "std"))]
pub use crate::v1_38::EuclidFloat_v1_38;
#[cfg(shim = "1.38")]
pub use crate::v1_38::{ConstPtr_v1_38, Duration_v1_38, Euclid_v1_38, MutPtr_v1_38};
#[cfg(all(shim = "1.40", feature = "alloc"))]
pub use crate::v1_40::slice_v1_40;
#[cfg(shim = "1.40")]
pub use crate::v1_40::{f32_v1_40, f64_v1_40, Option_v1_40, Option_v1_40_};
#[cfg(shim = "1.41")]
pub use crate::v1_41::Result_v1_41;
#[cfg(all(shim = "1.42", feature = "std"))]
pub use crate::v1_42::Condvar_v1_42;
#[cfg(shim = "1.42")]
pub use crate::v1_42::ManuallyDrop_v1_42;
#[cfg(shim = "1.43")]
pub use crate::v1_43::{float_v1_43, int_v1_43};
#[cfg(all(shim = "1.44", feature = "std"))]
pub use crate::v1_44::PathBuf_v1_44;
#[cfg(shim = "1.44")]
pub use crate::v1_44::{float_v1_44, Layout_v1_44};
#[cfg(shim = "1.45")]
pub use crate::v1_45::{int_v1_45, str_v1_45};
#[cfg(shim = "1.46")]
pub use crate::v1_46::{int_v1_46, Option_v1_46};
#[cfg(all(shim = "1.47", feature = "alloc"))]
pub use crate::v1_47::Vec_v1_47;
#[cfg(shim = "1.47")]
pub use crate::v1_47::{Range_v1_47, Result_v1_47};
#[cfg(shim = "1.48")]
pub use crate::v1_48::Slice_v1_48;
#[cfg(shim = "1.49")]
pub use crate::v1_49::Slice_v1_49;
#[cfg(all(shim = "1.50", feature = "alloc"))]
pub use crate::v1_50::BTreeMapEntry_v1_50;
#[cfg(all(shim = "1.50", feature = "std"))]
pub use crate::v1_50::HashMapEntry_v1_50;
#[cfg(shim = "1.50")]
pub use crate::v1_50::{
Bool_v1_50, Float_v1_50, Ord_v1_50, RefCell_v1_50, Slice_v1_50, UnsafeCell_v1_50,
};
#[cfg(all(shim = "1.51", feature = "alloc"))]
pub use crate::v1_51::Arc_v1_51;
#[cfg(all(shim = "1.51", feature = "std"))]
pub use crate::v1_51::Seek_v1_51;
#[cfg(shim = "1.51")]
pub use crate::v1_51::{
str_v1_51, Peekable_v1_51, Poll_v1_51, SignedInteger_v1_51, Slice_v1_51,
};
#[cfg(shim = "1.52")]
pub use crate::v1_52::{char_v1_52, str_v1_52, Slice_v1_52};
#[cfg(all(shim = "1.53", feature = "std"))]
pub use crate::v1_53::OsStr_v1_53;
#[cfg(shim = "1.53")]
pub use crate::v1_53::{
Duration_v1_53, Float_v1_53, Integer_v1_53, Option_v1_53, Ordering_v1_53,
};
#[cfg(all(shim = "1.53", feature = "alloc"))]
pub use crate::v1_53::{Rc_v1_53, Vec_v1_53};
}
#[doc(hidden)]
pub mod mem {
#[cfg(reexport = "1.40")]
pub use core::mem::take;
#[cfg(shim = "1.40")]
pub use crate::v1_40::take;
}
#[doc(hidden)]
pub mod iter {
#[cfg(reexport = "1.43")]
pub use core::iter::{once_with, OnceWith};
#[cfg(shim = "1.43")]
pub use crate::v1_43::{once_with, OnceWith};
}
#[doc(hidden)]
pub mod task {
#[cfg(all(reexport = "1.51", feature = "alloc"))]
pub use alloc::task::Wake;
#[cfg(all(shim = "1.51", feature = "alloc"))]
pub use crate::v1_51::Wake;
}
#[doc(hidden)]
pub mod f32 {
pub mod consts {
#[cfg(reexport = "1.47")]
pub use core::f32::consts::TAU;
#[cfg(reexport = "1.43")]
pub use core::f32::consts::{LOG10_2, LOG2_10};
#[cfg(shim = "1.43")]
pub use crate::v1_43::f32::{LOG10_2, LOG2_10};
#[cfg(shim = "1.47")]
pub use crate::v1_47::f32::TAU;
}
}
#[doc(hidden)]
pub mod f64 {
pub mod consts {
#[cfg(reexport = "1.47")]
pub use core::f64::consts::TAU;
#[cfg(reexport = "1.43")]
pub use core::f64::consts::{LOG10_2, LOG2_10};
#[cfg(shim = "1.43")]
pub use crate::v1_43::f64::{LOG10_2, LOG2_10};
#[cfg(shim = "1.47")]
pub use crate::v1_47::f64::TAU;
}
}
#[doc(hidden)]
pub mod char {
#[cfg(shim = "1.38")]
pub const UNICODE_VERSION: (u8, u8, u8) = (11, 0, 0);
#[cfg(all(reexport = "1.38", shim = "1.44"))]
pub const UNICODE_VERSION: (u8, u8, u8) = (12, 1, 0);
#[cfg(all(reexport = "1.44", shim = "1.45"))]
pub const UNICODE_VERSION: (u8, u8, u8) = (13, 0, 0);
#[cfg(reexport = "1.45")]
pub use core::char::UNICODE_VERSION;
}
#[doc(hidden)]
pub mod future {
#[cfg(reexport = "1.48")]
pub use core::future::{pending, ready, Pending, Ready};
#[cfg(shim = "1.48")]
pub use crate::v1_48::future::{pending, ready, Pending, Ready};
}
#[doc(hidden)]
pub mod array {
#[cfg(reexport = "1.53")]
pub use core::array::{from_mut, from_ref};
#[cfg(shim = "1.53")]
pub use crate::v1_53::array::{from_mut, from_ref};
}
#[doc(hidden)]
pub mod cmp {
#[cfg(reexport = "1.53")]
pub use core::cmp::{max_by, max_by_key, min_by, min_by_key};
#[cfg(shim = "1.53")]
pub use crate::v1_53::cmp::{max_by, max_by_key, min_by, min_by_key};
}