Thank GOD someone that ACTUALLY explains how these things work is making videos on it - you’re a blessing man Ty Ty ❤❤❤❤
@oliverjumpertzme8 ай бұрын
Thank you! Stay ready for the next one. We're going to explore a lot more in-depth things about Rust. 😁🙌🏻
@xenofly948 ай бұрын
Actually sad that this isn't a series already. You've explained those traits perfectly and it would be awesome to have similar videos for other common std lib traits
@oliverjumpertzme8 ай бұрын
Thank you! Well…I might have gotten a few more content ideas now. 💛 Already working on the next video BUT I will definitely take a look at the std lib and see what else is worth being explained and explored a little more. ☺️
@irlshrek6 ай бұрын
@@oliverjumpertzme I agree, you did an amazing job explaining these traits! can I politely provide a bit of feedback? While the sounds every time a new element shows up on screen was fancy it was a bit overwhelming and distracting.
@CuriousSpy8 ай бұрын
You can write From btw
@john.dough.8 ай бұрын
10:14 -> For code snippets intended for language learners, it may help to not use font ligatures, so that people know what to type. In this case, the key ligatures "••" means ".." and "⟹" means "=>"
@john.dough.8 ай бұрын
Great video though! Super helpful! :]
@oliverjumpertzme8 ай бұрын
Thank you. :) Yea, I'll definitely change the font next time. Great feedback!
@PennyEvolusАй бұрын
@@oliverjumpertzme dont change it the key ligatures look rly nice and its easier for people who have dyslexia like me
@oliverjumpertzmeАй бұрын
@@PennyEvolus oh, that's a great info for me. Thank you 🙏🏻
@joeymea8 ай бұрын
Hey man, thanks for taking the time to make this! Rust is definitely lacking in short, advanced topical videos like this. I already knew of the Into trick, but I had never heard of the others! Bonus points for showing usage examples because theory isn't quite enough to get through my thick skull!
@oliverjumpertzme8 ай бұрын
Thank you! Oh, and don't forget, you can always do more than only Into! ☺️💛
@Avogadro375408 ай бұрын
17:03 Perfect! Should be my new wallpaper moving forward ^^
@oliverjumpertzme8 ай бұрын
Haha, I can send you the png if you want. 😜
@Seacrest.8 ай бұрын
love that amount of creators about Rust grows here
@oliverjumpertzme8 ай бұрын
Rust is just worth it. Such a beautiful language! ☺️
@maingateway23082 ай бұрын
Looks at title and thumbnail.. ah it's another basic beginner topic. Let's give the guy a minute to talk ... Video starts.. video ends.. liked and subscribed ❤ Thanks
@oliverjumpertzme2 ай бұрын
Damn, thanks a lot! 😁💛
@equu4978 ай бұрын
You know man, I've been trying and trying and trying to learn traits and why I need them for a loooong time now. Always found ways around it but I'm glad I came across your video, it helped more than I can express. Id love to see more from you
@oliverjumpertzme8 ай бұрын
Super happy to read that, man! 💛 My next video might have a few more reasons for you then. Still working on it, but I think it will teach you a few more things. ☺️
@yapayzeka3 ай бұрын
16:59 very important graph
@irlshrek6 ай бұрын
omg. mind blown! AsRef has always been floating in my head as a fuzzy vague thing and you demystified it for me! thank you!
@oliverjumpertzme5 ай бұрын
Super happy to read that! 💛🙌🏻
@Proprogrammer0018 ай бұрын
Absolutely brilliant video. So many concepts are now clear now
@oliverjumpertzme8 ай бұрын
Super happy to hear that!
@JorgetePanete8 ай бұрын
8:14 HTTP/3 (HTTPS only) works over UDP/IP
@oliverjumpertzme8 ай бұрын
That's true, but it only accounts for ~30% of internet traffic. http(s) and http2 still account for ~68% of all traffic. :)
@kaziibrahimkhalil10118 ай бұрын
Beautifully explained. Everytime u publish a video my heart goes... Yayy a complete tutorial on rust🎉...but not😢...I can not explain how good i feel working with u...keep up ur good work and heart❤😋❤. Thanks for ur contribution.
@oliverjumpertzme8 ай бұрын
Thank you ☺️
@petrusion2827Ай бұрын
It would be awesome if you could make a sequel to this video about Borrow, Deref, ToOwned and Cow.
@oliverjumpertzmeАй бұрын
Thanks! And absolutely noted as an idea! 💛
@deryilz8 ай бұрын
great! 3:00 is my favorite part of the rust std lib
@oliverjumpertzme8 ай бұрын
Rust's std is incredible as a whole! 💛 Not much bs, the minimum required, but the best quality possible. ☺️
@lcssbr3 ай бұрын
Just found your channel and I'll definitely look into the other videos. Thanks for the content!
@oliverjumpertzme3 ай бұрын
Thanks a lot! 💛
@alanbaumann5 ай бұрын
I found this very useful, thank you! Also, I'm a big fan of MonoLisa.
@oliverjumpertzme5 ай бұрын
Super happy you find it useful! 💛🙌🏻
@LinkiPinkiWasTakenАй бұрын
What about cases where you want to convert something into a new owned object, from a borrowed value? Is `impl From for MyOtherStruct` bad practise or did you just not mention it? If it is, why is it bad?
@oliverjumpertzmeАй бұрын
You can well do that. A common impl I see (and also use) is From, for example, and even String implements From. :) The only thing From implies (by the docs is): The conversion MIGHT not be cheap, or you MUSTN'T rely on it being cheap. It does not specifically say anything about the base value, although in theory, From is meant to take ownership. But in the end, it's perfectly fine to do that. The docs just list a few requirements that are usually associated with the conversion: 1. The conversion is *infallible* 2. The conversion is *lossless* 3. The conversion is *value-preserving* 4. The conversion is *obvious*
@meowsqueak8 ай бұрын
Nice video - thanks, I learned something, and your explanation style is very good. For what it's worth, I think the frequent sound effects are cute at first, but become highly distracting and in at least one case genuinely alarming. Maybe they should be a lot quieter, and/or have some subtle variation to make them less jarring?
@oliverjumpertzme8 ай бұрын
Thank you for this feedback. I'll experiment with the sound a little more in my next video and see whether I can blend it more in. 🙏🏻
@abd0-omar4208 ай бұрын
Another great video, very educational with lots of examples and straight to the point.
@oliverjumpertzme8 ай бұрын
Thank you! 💛🙏🏻 Glad you like it!
@OlegLecinsky8 ай бұрын
Could you add some explosions to those whoosh sounds and shake animations please? It just feels incomplete w/o explosions.
@oliverjumpertzme8 ай бұрын
More explosions, noted!
@dalanxd5 ай бұрын
Omg thank you so much, man, I'm loving your content. It really helps 🙏🏻🌱
@oliverjumpertzme5 ай бұрын
Thank you! Super happy you like it! 💛
@SomethingSomething13378 ай бұрын
this is so clear now! thank you!
@oliverjumpertzme8 ай бұрын
Hey, super happy you find it useful! 💛
@DanielSantanaBjjАй бұрын
Fantastic work
@jaw_develops17 күн бұрын
Omg what a great content, thanks for your effort!!!!
@helleye3118 ай бұрын
This is pretty good, thanks! I keep forgetting you can have the parameter as impl Into instead of just String. And then I'm annoyed when I constantly need to do .to_string() or .to_owned() or into() on my hardcoded text. Is there a difference between fn foo(s: impl Into) and fn foo(s: T) where T: Into whether that be something semantic or functional? Which is preferred for a simple example like this? Also I found you can do fn foo(s:T) and that gets translated to the where syntax. Good, bad, thoughts?
@oliverjumpertzme8 ай бұрын
Hey, thanks a lot!
@helleye3118 ай бұрын
@@oliverjumpertzmeThat's great to know, thank you! I'm personally fond of putting the bound in the generic, but that's probably just because I'm primarily a typescript dev, and that's how typescript does it. Happy to know it's just "whatever you like" and not "well if you use where it's one behavior, and if you use impl it's another, and putting it in generic is the same as where but it implies something else". Hopefully there's a clippy rule to enforce using the same thing everywhere. I could get used to where or impl, but I would hate having all 3 scattered about the codebase if working with a team.
@oliverjumpertzme8 ай бұрын
@@helleye311 definitely stick to it then! Feeling comfortable and ”at home” in your code is more important than any conventions. The old mantra: do what works best for you. That's the beauty of Rust. You are usually not penalized for doing it one or the other way. ☺️
@RiwenX8 ай бұрын
Thanks, I really needed this video as a refresher of my dormant knowledge
@oliverjumpertzme8 ай бұрын
Super happy to hear that. Thanks a lot for watching! 💛
@MaiklPolk8 ай бұрын
Great video, thank you!
@oliverjumpertzme8 ай бұрын
Thank you for taking your time to watch it! 💛
@norude8 ай бұрын
Is there any way to make a conversion from MyStruct to a String? You can't `impl Into for MyStruct`, because a String is not From You can't `impl From for String`, because of orphan rules I am stuck
@oliverjumpertzme8 ай бұрын
That's not entirely correct. :) If MyStruct is really YOUR struct, means, a local type (which is a type that you created and have under your control, read: its source is in one of your project's files), you can implement From for MyStruct as well as From for String. But I assume you mean that MyStruct is from a lib not under your control and now you want to implement From for either side? In that case, you can still work with the newtype principle. Create a new struct: struct Wrapper(ForeignType); and implement From for either side now, as Wrapper is now a local type, which means that orphan rules don't apply. :) An example: impl From for String { fn from(value: Wrapper) -> Self { // convert ForeignType to String } } Hope this helps?
@norude8 ай бұрын
@@oliverjumpertzmeI understood now, I didn't have a proper understanding of the orphan rules. They state that if any of the type parameters is a local type, the impl is allowed. I assumed that since From and String are not local, the impl is not allowed
@APerson-jf2md4 ай бұрын
3:04 - that got me confused for a moment :D You meant the opposite: Into implies From T: Into -> T: From but not the other way around.
@APerson-jf2md4 ай бұрын
ok.. - with the TryFrom you said it again, but now I understand what you mean.. You were talking about the blanket impls and not the type in itself.. So "a type that is Into implies it is From", but "implementing From" automatically "creates an implementation for Into", meaning "it implies the existence of an implementation of Into". But maybe my brain is wrong, or too nit-picky ;) Anyway, great videos!
@APerson-jf2md4 ай бұрын
more nit-picking... sorry :) 14:30 this is not the "newtype idiom", but standard struct composition newtype is a thin wrapper around a type, mostly a zero-cost abstraction, so most of the time a tuple type like: struct Bytes(u32); struct Kilobytes(u32); (with possible conversions implemented) to prevent accidental mismatches in fn copy_data(data: ..., length: Kilobytes) {...
@APerson-jf2md4 ай бұрын
17:17 and my OCD says: "P" should be "T" .. ok.ok.. I'll shut up!... ;)
I don't know Rust, but you covered it well and looks interesting :) thanks for the vid!
@oliverjumpertzme8 ай бұрын
Thank you, Kyle! Oh, and congratulations on your new Podcast! Haven't had the time to watch it yet but it's the next on my list. 💛
@KylePrinsloo8 ай бұрын
@@oliverjumpertzme thanks man :)
@anneallison64028 ай бұрын
Very good explanation!
@oliverjumpertzme8 ай бұрын
Thanks a lot! 💛🙌🏻
@kevincarvalhodejesus44735 ай бұрын
Really good content, thank you so much for the explanation!
@oliverjumpertzme5 ай бұрын
Thank you so much for these kind words! 💛🙏🏻
@sypher49128 ай бұрын
Very nice explanation!!!
@oliverjumpertzme8 ай бұрын
Thank you. Glad you liked it! 💛
@cthutu8 ай бұрын
Excellent video and great presentation of some fundamental concepts in Rust.
@oliverjumpertzme8 ай бұрын
Thank you very much! Super happy to read that you liked it. It really means a lot to me! 💛
@bayoneta104 ай бұрын
Good video! Congrats!
@oliverjumpertzme4 ай бұрын
Thanks a lot! 💛🙏🏻
@avalagum79578 ай бұрын
Thank you very much. I just subscribed to your channel. Hope to have more videos like this from you. Thanks again.
@oliverjumpertzme8 ай бұрын
Hey, thanks a lot! You can count on me creating many more videos ☺️ Already working on the next!
@luiscarlosjayk6 ай бұрын
Very useful! Thanks
@OfficialViper4 ай бұрын
Keep up the good work! This video is great! :)
@oliverjumpertzme4 ай бұрын
Thanks a lot! 💛 Doing my best to keep it up ☺️
@WhiteSponge8 ай бұрын
Really good video! subscribed!
@oliverjumpertzme8 ай бұрын
Thank you! 💛🙏🏻
@marcopaolovaleriovezzoli57768 ай бұрын
Amazing and really important.
@oliverjumpertzme8 ай бұрын
Thank you very much! 💛🙏🏻
@TooFatToKidnap8 ай бұрын
another banger video. keep up the good work Oliver 👍
@oliverjumpertzme8 ай бұрын
Thank you very much! Already working on the next. Trying to improve every time. 💛🙏🏻
@mateocalvo61388 ай бұрын
Using strings in factory methods I thought "there must be a better way to do this". I now know the way, thanks
@leifelliott15008 ай бұрын
nice vid 👍
@meanmole3212Ай бұрын
Interesting, maybe I will use AsRef now at some point, or I just forget about it like with associated trait types and never use it.
@oliverjumpertzmeАй бұрын
Rust has a lot of features that even I sometimes tend to forget about (and I use Rust daily 😂). It's like muscle memory. If you've just other languages for long enough, you first need to get used to new systems. Rust, eg. Has a pretty solid one, but that, admittedly, comes with many things to keep in the back of our heads. ☺️
@catsolstice4 ай бұрын
Good content 👍
@oliverjumpertzme4 ай бұрын
Thank you!
@laycookie-f6i8 ай бұрын
Just started learning rust and I feel like I just leveled up lol
@oliverjumpertzme8 ай бұрын
I guess that's a perfect start then!
@emdeization8 ай бұрын
Good stuff
@oliverjumpertzme8 ай бұрын
Thank you! ❤️🔥🙏🏻
@inversebrah8 ай бұрын
cool
@simonkalu8 ай бұрын
Awesome
@oliverjumpertzme8 ай бұрын
Thank you! 💛
@LibreGlider7 ай бұрын
Just so you know I was the 1000th sub. Congrats from a future Rustacean!
@oliverjumpertzme7 ай бұрын
Wooohooooo! Thanks a lot! 💛🙌🏻
@jpp8554 ай бұрын
Não entendi porra nenhum, mas acho que você explicou bem, me falta fundamentos.
@oliverjumpertzme4 ай бұрын
First of all: thank you. Second: super sorry you think you lack the fundamentals. Any way I can try to help you to improve the situation? ☺️
@jpp8554 ай бұрын
@@oliverjumpertzme still learning Rust, I have just a basic idea about From, Try, Into… thank you concern! I will visit your video on future. So, you already helped.