derive-ctor 1.0.6

Adds `#[derive(ctor)]` which allows for the auto-generation of struct, enum, and union constructors.
Documentation
#![no_std]

extern crate alloc;

use alloc::string::String;
use derive_ctor::ctor;

#[derive(ctor, Debug, PartialEq)]
struct MixedStruct {
    provided1: i16,
    provided2: bool,
    #[ctor(into)]
    provided3: String,
    #[ctor(cloned)]
    provided4: String,
    #[ctor(expr!(partial1 + 100))]
    partial1: u32,
    #[ctor(expr(i32 -> partial2 < 0))]
    partial2: bool,
    #[ctor(expr("Foo"))]
    generated1: &'static str,
    #[ctor(default)]
    generated2: u32,
}

#[test]
fn test_struct_with_multiple_generated_fields() {
    let provided4 = String::from("Bar");

    let multi = MixedStruct::new(41, false, "Test", &provided4, 90, -1238);
    assert_eq!(
        MixedStruct {
            provided1: 41,
            provided2: false,
            provided3: String::from("Test"),
            provided4,
            partial1: 190,
            partial2: true,
            generated1: "Foo",
            generated2: Default::default()
        },
        multi
    )
}