fn main() {
let dict = RecordSet{
data : vec![Record{id : 1, name : "hp".to_string()}, Record{id : 2, name : "dell".to_string()},],
};
println!("{:?}", get_name(&dict, 1));
println!("{:?}", get_name(&dict, 2));
println!("{:?}", get_name(&dict, 3));
}
trait Dictionary<Key> {
fn get(&self, key : Key) -> Option<String>;
}
struct Record{
id : u32,
name : String,
}
struct RecordSet{
data : Vec<Record>,
}
fn get_name<D>(dictionary : &D, key : u32) -> Option<String>
where D : Dictionary<u32>{
dictionary.get(key)
}
impl Dictionary<u32> for RecordSet{
fn get(&self, key : u32) -> Option<String>{
for record in self.data.iter(){
if record.id == key {
return Some(String::from(&record.name))
}
}
None
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: