vista/
lib.rs

1//! # `Vista`
2//!
3//! `Vista` is a very simple library for visualising arrays and vectors in the terminal.
4
5#![deny(absolute_paths_not_starting_with_crate)]
6#![deny(ambiguous_negative_literals)]
7#![deny(dead_code)]
8#![deny(deprecated_safe_2024)]
9#![deny(deref_into_dyn_supertrait)]
10#![deny(edition_2024_expr_fragment_specifier)]
11#![deny(elided_lifetimes_in_paths)]
12#![deny(explicit_outlives_requirements)]
13#![deny(ffi_unwind_calls)]
14#![deny(future_incompatible)]
15#![deny(if_let_rescope)]
16#![deny(impl_trait_overcaptures)]
17#![deny(impl_trait_redundant_captures)]
18#![deny(improper_ctypes)]
19#![deny(keyword_idents_2018)]
20#![deny(keyword_idents_2024)]
21#![deny(keyword_idents)]
22#![deny(let_underscore_drop)]
23#![deny(macro_use_extern_crate)]
24#![deny(meta_variable_misuse)]
25// #![deny(missing_copy_implementations)]
26// #![deny(missing_debug_implementations)]
27#![deny(missing_docs)]
28#![deny(missing_unsafe_on_extern)]
29#![deny(non_ascii_idents)]
30#![deny(nonstandard_style)]
31#![deny(path_statements)]
32#![deny(redundant_imports)]
33#![deny(redundant_lifetimes)]
34#![deny(rustdoc::broken_intra_doc_links)]
35#![deny(single_use_lifetimes)]
36#![deny(tail_expr_drop_order)]
37#![deny(trivial_casts)]
38#![deny(trivial_numeric_casts)]
39#![deny(unit_bindings)]
40#![deny(unreachable_code)]
41// #![deny(unreachable_pub)]
42#![deny(unsafe_attr_outside_unsafe)]
43#![deny(unsafe_code)]
44#![deny(unsafe_op_in_unsafe_fn)]
45#![deny(unstable_features)]
46#![deny(unused_assignments)]
47#![deny(unused_crate_dependencies)]
48#![deny(unused_extern_crates)]
49#![deny(unused_import_braces)]
50#![deny(unused_imports)]
51#![deny(unused_lifetimes)]
52#![deny(unused_macro_rules)]
53#![deny(unused_must_use)]
54#![deny(unused_mut)]
55#![deny(unused_qualifications)]
56#![deny(unused_results)]
57#![deny(unused_variables)]
58#![deny(unused)]
59#![deny(variant_size_differences)]
60#![deny(warnings)]
61#![deny(clippy::all)]
62#![deny(clippy::cargo)]
63#![deny(clippy::complexity)]
64#![deny(clippy::correctness)]
65#![deny(clippy::nursery)]
66#![deny(clippy::pedantic)]
67#![deny(clippy::perf)]
68#![deny(clippy::restriction)]
69#![deny(clippy::style)]
70#![deny(clippy::suspicious)]
71#![allow(
72    clippy::arbitrary_source_item_ordering,
73    reason = "Alphabetical ordering is not always the most readable."
74)]
75#![allow(clippy::arithmetic_side_effects, reason = "Too restrictive for this crate.")]
76#![allow(clippy::blanket_clippy_restriction_lints, reason = "Prefer more lints.")]
77#![allow(clippy::default_numeric_fallback, reason = "Numeric type fallback should not be required.")]
78#![allow(clippy::else_if_without_else, reason = "Eliding final else is idiomatic in Rust.")]
79#![allow(clippy::float_arithmetic, reason = "Too restrictive for this crate.")]
80#![allow(clippy::implicit_return, reason = "Implicit returns are idiomatic in Rust.")]
81#![allow(clippy::indexing_slicing, reason = "Too restrictive for this crate.")]
82#![allow(clippy::integer_division_remainder_used, reason = "Too restrictive for this crate.")]
83#![allow(
84    clippy::min_ident_chars,
85    reason = "Whilst short variable names are not always ideal they are often clear in context."
86)]
87#![allow(
88    clippy::missing_trait_methods,
89    reason = "Traits should be able to provide default method implementations."
90)]
91#![allow(clippy::mod_module_files, reason = "Prefer to use mod.rs files for consistency.")]
92#![allow(clippy::pub_use, reason = "It is intended to expose some types at the crate level.")]
93#![allow(
94    clippy::pub_with_shorthand,
95    reason = "Rustfmt automatically shortens pub(in crate) to pub(crate)."
96)]
97#![allow(clippy::question_mark_used, reason = "The question mark operator is idiomatic in Rust.")]
98#![allow(
99    clippy::separated_literal_suffix,
100    reason = "Must chose between separated and adjoined literal suffixes."
101)]
102#![allow(
103    clippy::single_call_fn,
104    reason = "Single call functions may improve read- and maintainability."
105)]
106#![allow(
107    clippy::single_char_lifetime_names,
108    reason = "Single letter lifetimes are idiomatic in Rust."
109)]
110#![allow(clippy::std_instead_of_core, reason = "Prefer std for consistency.")]
111#![allow(
112    clippy::unreadable_literal,
113    reason = "Prefer no underscores in numeric literals for consistency."
114)]
115#![allow(clippy::unwrap_in_result, reason = "In some cases unwrap can be guaranteed to succeed.")]
116#![allow(clippy::unwrap_used, reason = "In some cases unwrap can be guaranteed to succeed.")]
117#![allow(clippy::use_debug, reason = "Debug prints are used in error messages.")]
118
119mod display_array;
120mod display_ext;
121mod display_method;
122
123pub use display_array::DisplayArray;
124pub use display_ext::DisplayExt;
125pub use display_method::{CommaSeparated, DoubleJoined, Joined, Separated};