Integerspow, abs, min, max, cmp, count_ones, leading_zeros, trailing_zeros, rem_euclid, div_euclid, signum, checked_div, wrapping_add/sub/mul/neg/shl/shr, to_le; MIN and MAX. checked_add/sub/mul and saturating_add/sub below 64 bits; saturating_mul at 16 bits or fewer.
f64floor, ceil, round, abs, sqrt, powi, powf, max, min, signum, is_nan, is_infinite, is_finite, ln, exp, exp2, sin, cos, log2, log10.
charis_alphabetic, is_numeric, is_alphanumeric, is_whitespace, is_lowercase, is_uppercase, the is_ascii_* forms, to_ascii_uppercase, to_ascii_lowercase, to_string; char::from_u32.
str and Stringlen, is_empty, push, push_str, chars, char_indices, bytes, as_bytes, as_str, to_string, to_owned, clone, into, split, split_whitespace, trim, trim_start, trim_end, trim_matches, trim_start_matches, trim_end_matches, contains, find, rfind, starts_with, ends_with, to_uppercase, to_lowercase, repeat, replace, replacen, parse; String::new, with_capacity, from; join and concat on slices of strings. A closure as a string pattern is refused.
Vec, arrays, sliceslen, is_empty, push, pop, get, insert, remove, swap_remove, contains, clear, truncate, append, extend, reverse, swap, dedup, retain, sort, sort_unstable, sort_by, sort_by_key, binary_search (integer elements), windows, chunks, to_vec, clone, iter, iter_mut, into_iter, as_slice, as_mut_slice; Vec::new, Vec::with_capacity, vec![..]. Arrays: len, iter, into_iter. Sorting, max and min over struct or enum elements are refused.
Optionunwrap, expect, unwrap_or, unwrap_or_else, unwrap_or_default, is_some, is_none, map, map_or, and_then, ok_or, filter, copied, cloned.
Resultunwrap, expect, unwrap_or, is_ok, is_err, ok, map, map_err. and_then and unwrap_or_else are refused.†
HashMappartial: new, insert, get, remove, contains_key, len, is_empty, keys, iter, m[&k], entry(k).or_insert(v); keys of string or integer type; collect() into a map refused.
Box, Rc, ArcBox supported; Rc and Arc partial: new, clone, Rc::strong_count.
Cell, RefCell, Mutex, RwLockpartial: new, get, set, borrow, borrow_mut, lock, write, into_inner.
Iteratorsmap, filter, enumerate, zip, chain, flat_map, rev, take, skip, step_by, take_while, skip_while, cloned, copied; collect (into Vec or String), sum, product, count, max, min, max_by_key, min_by_key, last, next, nth, fold, reduce, any, all, position, find, partition; iter::empty, iter::once, iter::repeat(..).take(n); user impl Iterator. An adapter whose closure prints is refused: ourc evaluates iterators eagerly, which would change the output order.
TraitsClone, Copy, Debug, Display, Default (not on enums), PartialEq, Eq, PartialOrd, Ord, Hash, Iterator, IntoIterator, Drop, Deref, DerefMut, FromStr, Add/Sub/Mul/Div and their *Assign forms. A hand-written impl Debug used through {:?}, and Display or to_string of a struct, are refused.
Macrosprintln!, print!, eprintln!, eprint!, format!, write!, writeln!, vec!, panic!, assert!, assert_eq!, assert_ne!, debug_assert!, unreachable!, todo!, unimplemented!, matches!, concat!, stringify!. dbg! is refused.†
Format specs{}, {:?}, {N}, {name}, {{ and }}, fill and alignment (<, ^, >), 0, width, precision ({:.3}, {:8.3}), {:e}. Refused: {:x}, {:X}, {:b}, {:o}, {:+}† and width from an argument ({:1$}). {:?} of a HashMap inside format!, of generic enum payloads and of sequences of () is refused.
Free functionsstd::mem: swap, replace, take, size_of, size_of_val, align_of, transmute, zeroed. std::cmp: max, min, Ordering. std::process: exit. std::fs: read_to_string, read. std::env: args. std::thread: spawn and join, for a thread whose closure cannot panic. std::ptr: null, null_mut, eq, addr_eq, from_ref, from_mut.
RefusedHashSet, BTreeMap, BTreeSet, VecDeque, and any std type, method or function not listed here.