#reference #mutable #extend #ref

extend-ref

A wrapper struct that implements Extend for mutable references

1 unstable release

Uses new Rust 2024

0.1.0 Mar 3, 2025

#9 in #ref

Download history 98/week @ 2025-02-26 41/week @ 2025-03-05

139 downloads per month

Apache-2.0

7KB

extend-ref

A wrapper struct that implements Extend for mutable references.

use extend_ref::ExtendRef;

fn unzip_on_refs(
    mut squares: &mut impl Extend<i32>,
    mut cubes: &mut impl Extend<i32>,
    mut tesseracts: &mut impl Extend<i32>
) {
    // Create an iterator of a 3-tuple
    let iter = (0i32..10).map(|i| (i * i, i.pow(3), i.pow(4)));

    // Unzip the iterator into the three referenced collections
    (ExtendRef(squares), ExtendRef(cubes), ExtendRef(tesseracts)).extend(iter);
}

License

Licensed under Apache License, Version 2.0 (LICENSE or https://www.apache.org/licenses/LICENSE-2.0).

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.


lib.rs:

extend-ref

A wrapper struct that implements Extend for mutable references.

use extend_ref::ExtendRef;

fn unzip_on_refs(
    mut squares: &mut impl Extend<i32>,
    mut cubes: &mut impl Extend<i32>,
    mut tesseracts: &mut impl Extend<i32>
) {
    // Create an iterator of a 3-tuple
    let iter = (0i32..10).map(|i| (i * i, i.pow(3), i.pow(4)));

    // Unzip the iterator into the three referenced collections
    (ExtendRef(squares), ExtendRef(cubes), ExtendRef(tesseracts)).extend(iter);
}

No runtime deps