1#![doc = include_str!("../README.md")]
5#![doc(html_logo_url = "https://raw.githubusercontent.com/icedland/iced/master/logo.png")]
6#![allow(unknown_lints)]
7#![warn(absolute_paths_not_starting_with_crate)]
8#![warn(anonymous_parameters)]
9#![warn(elided_lifetimes_in_paths)]
10#![warn(explicit_outlives_requirements)]
11#![warn(keyword_idents)]
12#![warn(meta_variable_misuse)]
13#![warn(missing_copy_implementations)]
14#![warn(missing_debug_implementations)]
15#![warn(missing_docs)]
16#![warn(non_ascii_idents)]
17#![warn(trivial_casts)]
18#![warn(trivial_numeric_casts)]
19#![warn(unsafe_op_in_unsafe_fn)]
20#![warn(unused_extern_crates)]
21#![warn(unused_import_braces)]
22#![warn(unused_lifetimes)]
23#![warn(unused_must_use)]
24#![warn(unused_results)]
25#![warn(rustdoc::invalid_html_tags)]
26#![allow(clippy::assertions_on_constants)]
27#![allow(clippy::bool_assert_comparison)]
28#![allow(clippy::branches_sharing_code)]
29#![allow(clippy::cast_lossless)]
30#![allow(clippy::collapsible_else_if)]
31#![allow(clippy::collapsible_if)]
32#![allow(clippy::field_reassign_with_default)]
33#![allow(clippy::manual_range_contains)]
34#![allow(clippy::match_ref_pats)]
35#![allow(clippy::needless_late_init)]
36#![allow(clippy::ptr_eq)]
37#![allow(clippy::redundant_closure)] #![allow(clippy::redundant_locals)]
39#![allow(clippy::too_many_arguments)]
40#![allow(clippy::type_complexity)]
41#![allow(clippy::upper_case_acronyms)]
42#![allow(clippy::wrong_self_convention)]
43#![warn(clippy::cloned_instead_of_copied)]
44#![warn(clippy::dbg_macro)]
45#![warn(clippy::debug_assert_with_mut_call)]
46#![warn(clippy::default_trait_access)]
47#![warn(clippy::doc_markdown)]
48#![warn(clippy::empty_line_after_outer_attr)]
49#![warn(clippy::explicit_into_iter_loop)]
50#![warn(clippy::explicit_iter_loop)]
51#![warn(clippy::fallible_impl_from)]
52#![warn(clippy::get_unwrap)]
53#![warn(clippy::implicit_saturating_sub)]
54#![warn(clippy::large_digit_groups)]
55#![warn(clippy::let_unit_value)]
56#![warn(clippy::match_bool)]
57#![warn(clippy::match_on_vec_items)]
58#![warn(clippy::match_wild_err_arm)]
59#![warn(clippy::missing_errors_doc)]
60#![warn(clippy::missing_inline_in_public_items)]
61#![warn(clippy::must_use_candidate)]
62#![warn(clippy::needless_borrow)]
63#![warn(clippy::print_stderr)]
64#![warn(clippy::print_stdout)]
65#![warn(clippy::rc_buffer)]
66#![warn(clippy::redundant_closure_for_method_calls)]
67#![warn(clippy::same_functions_in_if_condition)]
68#![warn(clippy::todo)]
69#![warn(clippy::unimplemented)]
70#![warn(clippy::unreadable_literal)]
71#![warn(clippy::unused_self)]
72#![warn(clippy::unwrap_in_result)]
73#![warn(clippy::used_underscore_binding)]
74#![warn(clippy::useless_let_if_seq)]
75#![warn(clippy::useless_transmute)]
76#![warn(clippy::zero_sized_map_values)]
77#![cfg_attr(not(test), warn(clippy::expect_used))]
78#![cfg_attr(not(test), warn(clippy::unwrap_used))]
79#![cfg_attr(not(feature = "std"), no_std)]
80#![doc(test(attr(deny(warnings))))]
81
82#[cfg(all(feature = "std", feature = "no_std"))]
84compile_error!("`std` and `no_std` features can't be used at the same time");
85#[cfg(all(not(feature = "std"), not(feature = "no_std")))]
86compile_error!("`std` or `no_std` feature must be defined");
87
88#[cfg_attr(
89 any(
90 feature = "encoder",
91 feature = "block_encoder",
92 feature = "op_code_info",
93 feature = "gas",
94 feature = "intel",
95 feature = "masm",
96 feature = "nasm",
97 feature = "fast_fmt"
98 ),
99 macro_use
100)]
101extern crate alloc;
102#[cfg(feature = "std")]
103extern crate core;
104
105#[macro_use]
106mod iced_assert {
107 macro_rules! iced_assert {
108 ($($expr:tt)*) => {{
109 #[cfg(debug_assertions)]
111 {
112 assert!($($expr)*);
113 }
114
115 #[cfg(not(debug_assertions))]
117 {
118 if !($($expr)*) {
119 panic!();
120 }
121 }
122 }};
123 }
124}
125
126#[cfg(all(feature = "encoder", feature = "block_encoder"))]
127mod block_enc;
128mod code;
129#[cfg(feature = "code_asm")]
130pub mod code_asm;
131#[cfg(any(feature = "decoder", feature = "encoder"))]
132mod constant_offsets;
133#[cfg(any(feature = "decoder", feature = "gas", feature = "intel", feature = "masm", feature = "nasm", feature = "fast_fmt"))]
134mod data_reader;
135#[cfg(feature = "decoder")]
136mod decoder;
137#[cfg(feature = "encoder")]
138mod encoder;
139mod enums;
140#[cfg(any(feature = "gas", feature = "intel", feature = "masm", feature = "nasm", feature = "fast_fmt"))]
141mod formatter;
142pub(crate) mod iced_constants;
143mod iced_error;
144mod iced_features;
145#[cfg(feature = "instr_info")]
146mod info;
147mod instruction;
148#[cfg(feature = "encoder")]
149mod instruction_create;
150mod instruction_internal;
151mod instruction_memory_sizes;
152mod instruction_op_counts;
153mod memory_size;
154mod mnemonic;
155mod mnemonics;
156#[cfg(feature = "mvex")]
157mod mvex;
158mod register;
159#[cfg(test)]
160pub(crate) mod test;
161#[cfg(test)]
162pub(crate) mod test_utils;
163#[cfg(any(feature = "decoder", feature = "encoder"))]
164mod tuple_type_tbl;
165
166#[cfg(all(feature = "encoder", feature = "block_encoder"))]
167pub use crate::block_enc::*;
168pub use crate::code::*;
169#[cfg(any(feature = "decoder", feature = "encoder"))]
170pub use crate::constant_offsets::*;
171#[cfg(feature = "decoder")]
172pub use crate::decoder::*;
173#[cfg(feature = "encoder")]
174pub use crate::encoder::*;
175pub use crate::enums::*;
176#[cfg(any(feature = "gas", feature = "intel", feature = "masm", feature = "nasm", feature = "fast_fmt"))]
177pub use crate::formatter::*;
178pub use crate::iced_error::*;
179pub use crate::iced_features::*;
180#[cfg(feature = "instr_info")]
181pub use crate::info::*;
182pub use crate::instruction::*;
183pub use crate::memory_size::*;
184pub use crate::mnemonic::*;
185pub use crate::register::*;