Rust - Apa Itu Trait ?

Traits adalah salah satu fitur dalam pemrogramman Rust, yang mana ketika ditranslate dalam bahasa Indonesia sendiri artinya sifat - sifat, tapi apa maksudnya?. Dengan adanya Traits ketika memprogram dalam Rust kita dapat mendefinisikan sifat/prilaku/behavior yang nantinya dapat dibagikan dan digunakan untuk berbagai tipe data.
Jika dalam bahasa pemrograman Java traits ini mirip dengan interface
Pada Rust traits di deklaraikan dengan keyword traits yang berisi header nama traits dan kontrak fungsi atau methodnya contoh
trait NamaTrait {
fn nama_fungsi(&self, params) -> return_type;
...
}
Traits biasanya di implentasikan pada struct atau tipe data lain menggunakan blok impl, contoh:
trait Description {
fn info(&self) -> String;
}
struct Animal {
name: String,
age: u8,
}
impl Description for Animal {
fn info(&self) -> String {
format!("name {} and age {}", self.name, self.age)
}
}
struct Human {
name: String,
pet: Animal,
}
impl Description for Human {
fn info(&self) -> String {
format!("Person name {} has pet {}", self.name, self.pet.info())
}
}
fn main() {
let dog = Animal {
name: String::from("husk"),
age: 1
};
let jane_doe = Human {
name: String::from("Jane Doe"),
pet: dog
};
println!("{}", jane_doe.info());
}

![[Config] Konfigurasi VPS Linux](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fstock%2Funsplash%2F40XgDxBfYXM%2Fupload%2F4abd040c2310d933545447e36e0aa765.jpeg&w=3840&q=75)
![[Error] npx create-react-app](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fstock%2Funsplash%2FO_Xy25Dj7Mo%2Fupload%2F857d641313b8e971d5d750198efa52d0.jpeg&w=3840&q=75)