[][src]Crate adhoc_derive

This crate allows you to derive a std::str::FromStr implementation based on a regex provided via macro attribute.

This code runs with edition 2018
use adhoc_derive::FromStr;
#[adhoc(regex = r"^#(?P<id>\d+) @ (?P<x>\d+),(?P<y>\d+): (?P<width>\d+)x(?P<height>\d+)$")]
struct Rectangle {
    id: usize,
    x: usize,
    y: usize,
    width: usize,
    height: usize,

let rect: Rectangle = "#123 @ 3,2: 5x4".parse().unwrap();
assert_eq!(123, rect.id);
assert_eq!(3, rect.x);
assert_eq!(2, rect.y);
assert_eq!(5, rect.width);
assert_eq!(4, rect.height);

Refer to GUIDE.md for more examples.

Derive Macros