@@a_maxed_out_handle_of_30_chars thanks so much for your kind comment! I really appreciate it. I don't have any videos on lifetimes specifically. They still kind of confuse me. 😊
This really solidified my understanding. By far the best explanation. Your examples and pace is perfect, also the fact that you didn't conform to the typical(pun intended) use of T and U etc.
Hello, sorry I still don't understand traits why can't we use the below code? struct Pet { first_name: String, pet: T, } struct Dog {} impl Dog { fn make_sound(self) { println!("bark!"); } } struct Cat {} impl Cat { fn make_sound(self) { println!("meow!"); } } fn main() { let dog1 = Dog {}; let cat1 = Cat {}; let p1 = Pet { first_name: "dog".to_string(), pet: dog1, }; let p2 = Pet { first_name: "cat".to_string(), pet: cat1, }; p1.pet.make_sound(); p2.pet.make_sound(); } why do we need traits when using implementation block works?
That's a great question! Generics and Traits offer some similar functionality. However, the benefit with traits is that you can focus on object behaviors rather than the types themselves. In your example, a crocodile also makes a sound, but a crocodile is not a pet. So if you need to access common behavior across dogs, cats, and crocodiles, using the Pet type doesn't make sense, because crocodiles aren't pets. Instead, you would define a trait called "MakesSound" (or whatever name you want) and then declare the make_sound() function in that trait. There's nothing wrong with using generics, as long as they fit your use case. Traits just give you another mechanism to deal with different types. I hope this helps!!
Trevor, could you implement an enum as a trait for the pets and have the enum have all of the pets? Also, I wanted to say, thank you. This might be the best video on traits and generics I have ever seen.
Im confuse in rust concepts from enums to everyother. Your videos are great when i try to implement these on my side it gets hard. can you tell me some exercises which helps me clearing concepts in rust about each topic?
Hello thanks for sharing your experience with Rust. I would recommend taking what you learn in these videos and adapt it to a different use case. For example, if I use an animal as an example, change it to a vehicle instead. Or a plane with departure / arrival times and locations, or a train that has a schedule. Make sense? Just think of something in the real world and then try to model it using Rust structs and methods.
Most ambitious? I'm not sure about that, but for starters, think about some CLI tools you could use. What about building web APIs, to call from automation scripts? For example, a TUI (Terminal User Interface) that helps you manage Kubernetes clusters, maybe? What kinds of technologies do you work with, and what could you simplify?
Benchmarking tools would be another great use case for Rust, since it's a high performance language. For example, build a Postgres or MySQL benchmarking tool to compare performance in different configurations.
@bothwellw Unfortunately no, I don't have a GitHub repository for the samples. I encourage people to write the code out for themselves, to learn how things work. It's good exercise.
Check out the FULL Rust video playlist! 🦀 th-cam.com/play/PLDbRgZ0OOEpUkWDGqp91ODn0dk7LPBAUL.html
This is the BEST video on Rust Trait! I finally understand Traits and Generics go together. Thank you!
I'm so happy to hear that you learned something from this video! I appreciate your kind comment! Enjoy writing Rust code! 🦀🦀
Trevor wonderfully explained. Do you have video on lifetimes and if not are you planning to make one?
Thanks again :)
@@a_maxed_out_handle_of_30_chars thanks so much for your kind comment! I really appreciate it. I don't have any videos on lifetimes specifically. They still kind of confuse me. 😊
This really solidified my understanding. By far the best explanation. Your examples and pace is perfect, also the fact that you didn't conform to the typical(pun intended) use of T and U etc.
Such a clear explanation. I like that you didn't just us This video deserves a lot more views. TH-cam, sort your algorithm!!
Thanks so much for your kind feedback! I'm glad you got something out of this video!
You way of explaining complex stuff is amazing! Thank you! Subscribed!
You're so kind! Thank you and I'm glad you're learning! 🥰🦀
Great explanation, thanks bro
You present very well I must say. Thanks for making these videos.
Hello, sorry I still don't understand traits
why can't we use the below code?
struct Pet {
first_name: String,
pet: T,
}
struct Dog {}
impl Dog {
fn make_sound(self) {
println!("bark!");
}
}
struct Cat {}
impl Cat {
fn make_sound(self) {
println!("meow!");
}
}
fn main() {
let dog1 = Dog {};
let cat1 = Cat {};
let p1 = Pet {
first_name: "dog".to_string(),
pet: dog1,
};
let p2 = Pet {
first_name: "cat".to_string(),
pet: cat1,
};
p1.pet.make_sound();
p2.pet.make_sound();
}
why do we need traits when using implementation block works?
That's a great question! Generics and Traits offer some similar functionality. However, the benefit with traits is that you can focus on object behaviors rather than the types themselves. In your example, a crocodile also makes a sound, but a crocodile is not a pet. So if you need to access common behavior across dogs, cats, and crocodiles, using the Pet type doesn't make sense, because crocodiles aren't pets. Instead, you would define a trait called "MakesSound" (or whatever name you want) and then declare the make_sound() function in that trait.
There's nothing wrong with using generics, as long as they fit your use case. Traits just give you another mechanism to deal with different types.
I hope this helps!!
One of the best explanations on traits out there! Thank you, Trevor!
Excellent, great clear explanation -> Thank You!
Trevor, could you implement an enum as a trait for the pets and have the enum have all of the pets? Also, I wanted to say, thank you. This might be the best video on traits and generics I have ever seen.
Thank you! I'm so glad that this series has helped you. Could you share a code example of what you're thinking?
@@TrevorSullivanenum PetType{Dog, Cat,Bear,Tiger} as the selection for your pet "type"?
Thank you so much! This was really great and helpful!
Im confuse in rust concepts from enums to everyother. Your videos are great when i try to implement these on my side it gets hard. can you tell me some exercises which helps me clearing concepts in rust about each topic?
Hello thanks for sharing your experience with Rust. I would recommend taking what you learn in these videos and adapt it to a different use case. For example, if I use an animal as an example, change it to a vehicle instead. Or a plane with departure / arrival times and locations, or a train that has a schedule. Make sense? Just think of something in the real world and then try to model it using Rust structs and methods.
Great Stuff!!! Please keep on creating valuable content about Rust. Also, if you please create a video on efficient data structures in Rust.
thank you so much, you really helped me a lot!
thanks a lot for your work mate !❤
Awsome teaching
Hey Trevor, so what would YOU use Rust to create? I am asking most ambitious software you can imagine using it for.
Most ambitious? I'm not sure about that, but for starters, think about some CLI tools you could use. What about building web APIs, to call from automation scripts? For example, a TUI (Terminal User Interface) that helps you manage Kubernetes clusters, maybe? What kinds of technologies do you work with, and what could you simplify?
Benchmarking tools would be another great use case for Rust, since it's a high performance language. For example, build a Postgres or MySQL benchmarking tool to compare performance in different configurations.
Great Exaplanation!
Thanks a lot mate, u r the best
I'm glad you're learning Rust!! 🦀
Superb!
Good sir you missed the implementation on the 'Person' animal.
You really nailed the explanation Sir.
is there a github repo for the code examples ?
@bothwellw Unfortunately no, I don't have a GitHub repository for the samples. I encourage people to write the code out for themselves, to learn how things work. It's good exercise.
Great !
awesome video
Best explanation dude!!
❤❤❤❤
But some dogs are dangerous 😭