[−][src]Crate extdot
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 {}); }
Re-exports
pub use extdot_impl::item; |
Macros
expr | Allows the use of the extended dot notation in expressions. |