#[ allow(unused_imports) ]
use component_model as the_module;
use the_module ::ComponentModel;
#[ test ]
fn test_empty_struct_no_implementations()
{
#[ derive(ComponentModel) ]
struct EmptyStruct {}
let empty_struct = EmptyStruct {};
let _ = empty_struct;
}
#[ test ]
fn test_debug_attribute_processing()
{
#[ derive(Default, Debug) ]
#[ derive(ComponentModel) ]
struct DebugStruct
{
name: String,
value: i32,
}
let mut debug_struct = DebugStruct ::default();
use the_module ::Assign;
Assign ::assign( &mut debug_struct, "debug_test".to_string() );
Assign ::assign( &mut debug_struct, 123i32 );
assert_eq!( debug_struct.name, "debug_test" );
assert_eq!( debug_struct.value, 123 );
}
#[ test ]
fn test_struct_with_zero_fields()
{
#[ derive(Default) ]
#[ derive(ComponentModel) ]
struct ZeroFieldStruct {}
let _zero_field = ZeroFieldStruct ::default();
}
#[ test ]
fn test_complex_attribute_combinations()
{
#[ derive(Default, Debug, PartialEq) ]
#[ derive(ComponentModel) ]
struct ComplexAttributeStruct
{
#[ allow( dead_code ) ]
name: String,
#[ cfg( test ) ]
test_field: i32,
}
let mut complex_struct = ComplexAttributeStruct ::default();
use the_module ::Assign;
Assign ::assign( &mut complex_struct, "complex_test".to_string() );
assert_eq!( complex_struct.name, "complex_test" );
#[ cfg(test) ]
{
Assign ::assign( &mut complex_struct, 456i32 );
assert_eq!( complex_struct.test_field, 456 );
}
}
#[ test ]
fn test_reserved_keyword_field_names()
{
#[ derive(Default, Debug) ]
#[ derive(ComponentModel) ]
struct KeywordFieldStruct
{
r#type: String, r#match: i32, normal_field: bool,
}
let mut keyword_struct = KeywordFieldStruct ::default();
use the_module ::Assign;
Assign ::assign( &mut keyword_struct, 789i32 );
keyword_struct.normal_field = true;
assert_eq!( keyword_struct.r#type, String ::default() );
assert_eq!( keyword_struct.r#match, 789 );
assert!( keyword_struct.normal_field );
}
#[ test ]
fn test_nested_generic_types()
{
use std ::collections ::HashMap;
#[ derive(Default, Debug) ]
#[ derive(ComponentModel) ]
struct NestedGenericStruct
{
simple: String,
nested: HashMap< String, Vec< i32 > >,
optional: Option< String >,
}
let mut nested_struct = NestedGenericStruct ::default();
use the_module ::Assign;
let mut test_map = HashMap ::new();
test_map.insert( "key".to_string(), vec![ 1, 2, 3 ] );
Assign ::assign( &mut nested_struct, test_map.clone() );
assert_eq!( nested_struct.simple, String ::default() );
assert_eq!( nested_struct.nested, test_map );
assert_eq!( nested_struct.optional, None ); }
#[ test ]
fn test_simple_field_parameters()
{
#[ derive(Default, Debug) ]
#[ derive(ComponentModel) ]
struct SimpleStruct
{
name: String,
value: i32,
}
let mut simple_struct = SimpleStruct ::default();
use the_module ::Assign;
Assign ::assign( &mut simple_struct, "simple_test".to_string() );
Assign ::assign( &mut simple_struct, 42i32 );
assert_eq!( simple_struct.name, "simple_test" );
assert_eq!( simple_struct.value, 42 );
}