# printable
_Provides `std::fmt::Display` wrapper for iterators and tuples._
[![Crates.io][crates-badge]][crates-url]
[![Documentation][docs-badge]][docs-url]
[![MIT licensed][mit-badge]][mit-url]
[![Build Status][actions-badge]][actions-url]
[crates-badge]: https://img.shields.io/crates/v/printable.svg
[crates-url]: https://crates.io/crates/printable
[docs-badge]: https://img.shields.io/docsrs/printable
[docs-url]: https://docs.rs/printable
[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
[mit-url]: https://github.com/andrewsonin/printable/blob/main/LICENSE
[actions-badge]: https://github.com/andrewsonin/printable/actions/workflows/ci.yml/badge.svg
[actions-url]: https://github.com/andrewsonin/printable/actions/workflows/ci.yml
## Usage
Displaying iterators.
```rust
use printable::prelude::PrintableIter;
let v = vec![1, 2, 3];
assert_eq!(format!("{}", v.iter().printable()), "[1, 2, 3]");
```
Displaying tuples.
```rust
use printable::prelude::PrintableTuple;
let v = (1, "2", 3.0);
assert_eq!(format!("{}", v.printable()), "[1, 2, 3]");
```
## Features
* __`unstable-assert-no-drop`__
Enables compile-time assertions that the iterators used don't own any resource.
### Warning
May violate backward compatibility and lead to compilation failure
even if the major semver versions of the underlying crates aren't
updated.
This may happen due to the following factors:
- The `std::mem::needs_drop` documentation does not guarantee its
stability.
- The fact that the iterator type, which can be declared in a third-party
crate, started owning a resource doesn't require increasing the major
version of this crate.