vodca 0.1.8

Reduce boilerplate when writing DDD codes
Documentation
#![allow(dead_code)]

use std::marker::PhantomData;
use vodca::AsRefln;

#[derive(AsRefln)]
pub struct TupleStructI32(i32);

#[derive(AsRefln)]
pub struct TupleStructString(String);

#[derive(AsRefln)]
pub struct TupleStructVec(Vec<i32>);

#[derive(AsRefln)]
pub struct TupleStructGenerics<T>(i32, PhantomData<T>);

fn main() {
    let ts_i32 = TupleStructI32(42);
    let i32 = ts_i32.as_ref();
    assert_eq!(i32, &42);

    let ts_string = TupleStructString("Hello, world!".to_string());
    let str: &str = ts_string.as_ref();
    assert_eq!(str, "Hello, world!");

    let ts_vec = TupleStructVec(vec![1, 2, 3]);
    let vec: &[i32] = ts_vec.as_ref();
    assert_eq!(vec, &[1, 2, 3]);

    let ts_generics = TupleStructGenerics::<()>(42, PhantomData);
    let i32 = ts_generics.as_ref();
    assert_eq!(i32, &42);
}