use component_model ::Assign;
#[ derive( Default, Debug, PartialEq, Assign ) ]
struct DatabaseConnection
{
host: String,
port: i32,
}
fn main()
{
println!( "=== Component Assignment Patterns ===" );
let mut db_config = DatabaseConnection ::default();
db_config.assign( "postgres.example.com" ); db_config.assign( 5432 );
println!( "Individual assignment result: {db_config:?}" );
assert_eq!( db_config.host, "postgres.example.com" );
assert_eq!( db_config.port, 5432 );
let db_config2 = DatabaseConnection ::default()
.impute( "localhost" )
.impute( 3306 );
println!( "Fluent assignment: {db_config2:?}" );
let mut db_config3 = DatabaseConnection ::default()
.impute( "dev.example.com" );
db_config3.assign( 5433 );
println!( "Mixed style: {db_config3:?}" );
println!( "✅ Component assignment patterns complete!" );
}