#tuple #assign #chain

no-std right-as

Chain call assigns tuple elements to outside

1 unstable release

new 0.1.0 May 9, 2025

#1484 in Rust patterns

MIT license

5KB
78 lines

Chain call assigns tuple elements to outside

Examples

use right_as::TupleExt;

let mut right = "";
let left = "left,right"
    .split_once(',')
    .unwrap()
    .right_as(&mut right);

assert_eq!(left, "left");
assert_eq!(right, "right");
use right_as::TupleExt;

let [b, c] = &mut [0; 2];
let a = Some(1)
    .zip(Some(2))
    .zip(Some(3))
    .right_as(c)
    .right_as(b);

assert_eq!(a, Some(1));
assert_eq!(b, &mut 2);
assert_eq!(c, &mut 3);
use right_as::TupleExt;

let mut right = None;
let left = "left,right"
    .split_once(',')
    .unwrap()
    .right_as(&mut right);

assert_eq!(left, "left");
assert_eq!(right, Some("right"));
use right_as::TupleExt;

let mut right = "";
let left = "left,right"
    .split_once(',')
    .right_as(&mut right);

assert_eq!(left, Some("left"));
assert_eq!(right, "right");
use right_as::TupleExt;

let mut right = "";
let left = "left"
    .split_once(',')
    .right_as(&mut right);

assert_eq!(left, None);
assert_eq!(right, "");

No runtime deps