use derive_tools_meta::*;
#[ test ]
fn test_single_field_tuple()
{
#[ derive( From, Debug, PartialEq ) ]
struct Wrapper( String );
let w = Wrapper::from( "hello".to_string() );
assert_eq!( w.0, "hello" );
}
#[ test ]
fn test_single_field_named()
{
#[ derive( From ) ]
struct Container
{
value: i32
}
let c = Container::from( 42 );
assert_eq!( c.value, 42 );
}
#[ test ]
fn test_multi_field_tuple()
{
#[ derive( From ) ]
struct TupleMulti( #[ from ] String, i32 );
let t = TupleMulti::from( "test".to_string() );
assert_eq!( t.0, "test" );
assert_eq!( t.1, 0 ); }
#[ test ]
fn test_generic_single_field()
{
#[ derive( From, Debug, PartialEq ) ]
struct GenericWrapper<T>( T );
let w: GenericWrapper<String> = GenericWrapper::from( "generic".to_string() );
assert_eq!( w.0, "generic" );
let w2: GenericWrapper<Vec<i32>> = GenericWrapper::from( vec![ 1, 2, 3 ] );
assert_eq!( w2.0.len(), 3 );
}