[go: up one dir, main page]

darling 0.10.3

A proc-macro library for reading attributes into structs when implementing custom derives.
Documentation
#![cfg(feature = "suggestions")]

#[macro_use]
extern crate darling;
#[macro_use]
extern crate syn;
#[macro_use]
extern crate quote;

use darling::FromDeriveInput;

#[derive(Debug, FromDeriveInput)]
#[darling(attributes(suggest))]
struct Lorem {
    ipsum: String,
    dolor: Dolor,
}

#[derive(Debug, FromMeta)]
struct Dolor {
    sit: bool,
}

#[test]
fn suggest_dolor() {
    let input: syn::DeriveInput = parse_quote! {
        #[suggest(ipsum = "Hello", dolorr(sit))]
        pub struct Foo;
    };

    let result = Lorem::from_derive_input(&input).unwrap_err();
    assert_eq!(2, result.len());
    assert!(format!("{}", result).contains("Did you mean"));
}