Expand description
A set of macros for using the extended dot operator.
§Examples
§In areas where expression syntax is needed.
fn main() {
extdot::expr!{
let v: i32 = -5;
let v_abs = v.[it.abs()];
let v_pow = v.[it.pow(2)];
}
}
use serde::Deserialize;
use std::{ fs::File, path::Path };
#[derive(Debug, Deserialize)]
struct Point {
x: i32,
y: i32
}
fn main() -> Result<(), Box<std::error::Error>>{
extdot::expr!{
let point: Point =
Path::new("tests/data/point.json")
.[File::open]?
.[serde_json::from_reader]?;
Ok(())
}
}
extdot::expr!{
let map = std::collections::HashMap::new().[
it.insert("key1", 13),
it.insert("key2", 17),
];
}
§In areas where item syntax is needed.
use std::fmt;
struct Example {}
extdot::item!{
impl fmt::Display for Example {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let v: i32 = -7;
let v_abs = v.[it.abs()];
let v_pow = v.[it.pow(2)];
write!(f, "({}, {})", v_abs, v_pow)
}
}
}
fn main() {
println!("{}", Example {});
}