#![doc = include_str!("../doc/index.md")]
#![cfg_attr(not(feature = "std"), no_std)]
#![cfg_attr(coverage_nightly, feature(no_coverage))]
#![warn(clippy::pedantic)]
#![warn(missing_docs)]
#![warn(rust_2018_idioms)]
#![allow(clippy::module_name_repetitions)]
extern crate alloc;
extern crate self as binrw;
#[cfg(all(doc, not(feature = "std")))]
extern crate std;
#[doc(hidden)]
#[path = "private.rs"]
pub mod __private;
mod binread;
mod binwrite;
mod builder_types;
pub mod docs;
pub mod endian;
pub mod error;
pub mod file_ptr;
pub mod helpers;
pub mod io;
pub mod meta;
#[doc(hidden)]
pub mod pos_value;
pub mod punctuated;
#[doc(hidden)]
pub mod strings;
#[cfg(all(doc, not(feature = "std")))]
use alloc::vec::Vec;
#[doc(inline)]
pub use {
binread::*,
binwrite::*,
builder_types::*,
endian::Endian,
error::Error,
file_ptr::{FilePtr, FilePtr128, FilePtr16, FilePtr32, FilePtr64, FilePtr8},
helpers::{count, until, until_eof, until_exclusive},
pos_value::PosValue,
strings::{NullString, NullWideString},
};
pub use binrw_derive::BinRead;
pub use binrw_derive::binread;
pub use binrw_derive::BinWrite;
pub use binrw_derive::binwrite;
pub use binrw_derive::binrw;
pub use binrw_derive::BinrwNamedArgs;
pub type BinResult<T> = core::result::Result<T, Error>;
pub mod prelude {
pub use crate::{
binread, binrw, binwrite, BinRead, BinReaderExt, BinResult, BinWrite, BinWriterExt,
};
}