Expand description
Provides various anonymous type constructs
§Macros
struct!
: creates an instance of an anonymous struct.
use anony::r#struct;
let items = vec![1, 3, 5];
let x = r#struct! {
color: "Red".to_owned(),
// move the `items` variable to the struct
items
};
assert_eq!(x.color, "Red");
assert_eq!(x.items, [1, 3, 5]);
tuple!
: creates an instance of an anonymous tuple.
use anony::tuple;
let items = vec![1, 3, 5];
let x = tuple!("Red".to_owned(), items);
assert_eq!(x.0, "Red");
assert_eq!(x.1, [1, 3, 5]);
join!
andjoin_cyclic!
: join multiple futures. Requirefuture
feature.
use anony::join;
assert_eq!(join!(async { 2 }, async { "123" }).await, (2, "123"));
try_join!
andtry_join_cyclic!
: join multiple futures and short-circuit on “break” value. Requirefuture
feature.
use anony::try_join;
assert_eq!(try_join!(async { Some(2) }, async { Some("123") }).await, Some((2, "123")));
assert_eq!(try_join!(async { Some(2) }, async { None::<i32> }).await, None);
§Example Macro Expansions
https://github.com/discreaminant2809/anony/blob/master/examples/expansions.rs
§Features
serde
: derivesSerialize
for anonymous structs and tuples. serde crate must exist in your crate.future
: enablesFuture
anonymous types, such asjoin!
.
§Disclaimer
All macros in this crate are 100% hygienic.
Macros§
- join
future
Returns a future that “joins” multiple futures that will be completed concurrently. - join_cyclic
future
Returns a future that “joins” multiple futures that will be completed concurrently, using cycling polling strategy. - Creates an instance of an anonymous struct.
- try_join
future
Returns a future that “joins” multiple futures that will be completed concurrently. May short-circuit. - try_join_cyclic
future
Returns a future that “joins” multiple futures that will be completed concurrently, using cycling polling strategy. May short-circuit. - Create an instance of an anonymous tuple.