#![no_std]
#[tuplities_derive::impl_reverse]
pub trait TupleReverse {
type Output;
fn reverse(self) -> Self::Output;
}
#[cfg(test)]
mod tests {
use super::TupleReverse;
#[test]
fn test_reverse_empty_tuple() {
let tuple = ();
let _reversed: () = tuple.reverse();
}
#[test]
fn test_reverse_single_element() {
let tuple = (42,);
let reversed = tuple.reverse();
assert_eq!(reversed, (42,));
}
#[test]
fn test_reverse_two_elements() {
let tuple = (1, 2);
let reversed = tuple.reverse();
assert_eq!(reversed, (2, 1));
}
#[test]
fn test_reverse_three_elements() {
let tuple = (1, 2, 3);
let reversed = tuple.reverse();
assert_eq!(reversed, (3, 2, 1));
}
}