Walnut356

joined 2 years ago
[–] Walnut356 1 points 1 year ago* (last edited 1 year ago) (1 children)

I'm no rust expert, but:

you can use into_iter() instead of iter() to get owned data (if you're not going to use the original container again). With into_iter() you dont have to deref the values every time which is nice.

Also it's small potatoes, but calling input.lines().collect() allocates a vector (that isnt ever used again) when lines() returns an iterator that you can use directly. You can instead pass lines.next().unwrap() into your functions directly.

Strings have a method called split_whitespace() (also a split_ascii_whitespace()) that returns an iterator over tokens separated by any amount of whitespace. You can then call .collect() with a String turbofish (i'd type it out but lemmy's markdown is killing me) on that iterator. Iirc that ends up being faster because replacing characters with an empty character requires you to shift all the following characters backward each time.

Overall really clean code though. One of my favorite parts of using rust (and pain points of going back to other languages) is the crazy amount of helper functions for common operations on basic types.

Edit: oh yeah, also strings have a .parse() method to converts it to a number e.g. data.parse() where the parse takes a turbo fish of the numeric type. As always, turbofishes arent required if rust already knows the type of the variable it's being assigned to.

[–] Walnut356 1 points 1 year ago* (last edited 1 year ago)

Qownnotes

It's a desktop app, but can sync with self-hosted cloud servers. It's also literally just text/markdown files.

[–] Walnut356 4 points 1 year ago

For sure, but as long as clickbait works they'll keep doing it.

[–] Walnut356 1 points 1 year ago (1 children)

I mean yeah, but why? Like what did you like about it?

[–] Walnut356 7 points 1 year ago* (last edited 1 year ago) (1 children)

If they had made the deck more powerful, the old ones would suddenly have been obsolete.

I'm pretty sure it has more to do with current chip technology not actually changing that much in the, what, 2 years since the deck first released?

Also obsolete is a pretty strong word for what - if it had stronger internals - would likely end up being more expensive than current models.

[–] Walnut356 2 points 1 year ago* (last edited 1 year ago) (2 children)

To be fair, "an entire x" does have markedly different connotation than "x". The emphasis is that it's, well, the entirety of x. It's the difference between "i ate the cereal" and "i ate all the cereal".

[–] Walnut356 1 points 1 year ago (3 children)

Claymore (the end was kinda mid)

Genuinely curious - why do you like it? I see this at the top anime of all time. I watched it a few years ago and i thought it was absolutely horrible. Like 2 or 3 out of 10.

I feel like the only reason i can see is "the main character is a bad guy" but that doesnt excuse trope-y terrible writing, flat characters, and mid-2000's animation that aged horribly. Am i missing something?

[–] Walnut356 16 points 1 year ago (7 children)

Make them optional lmao. I dont have a 4k screen, havent ever had one, and wont buy one for a very long time. Why am i storing these assets i will never use?

[–] Walnut356 6 points 1 year ago

Honestly, it's because a bunch of programs i used disappointed me (performance, functionality, [being a web app at all], etc.) and i figured it couldnt be that hard to do it better. In some cases i was right, in most i was wrong. As it turns out though, I really like programming so i guess i'm stuck here

[–] Walnut356 1 points 1 year ago

I mean to be fair, those errors arent really meant for you (the end user) in the first place.

[–] Walnut356 1 points 1 year ago

To be clear, fall through is implicit - when the case being fallen through is empty

That's even worse... why isnt an empty case a syntax error?

[–] Walnut356 2 points 1 year ago* (last edited 1 year ago) (3 children)

I’m not sure I understand your point about fall through having to be explicit

As far as i understand it, every switch statement requires a break otherwise it's a compiler error - which makes sense from the "fallthrough is a footgun" C perspective. But fallthrough isnt the implicit behavior in C# like it is in C - the absence of a break wouldnt fall through, even if it wasnt a compiler error. Fallthrough only happens when you explicitly use goto.

But break is what you want 99% of the time, and fallthrough is explicit. So why does break also need to be explicit? Why isnt it just the default behavior when there's nothing at the end of the case?

It's like saying "my hammer that's on fire isnt safe, so you're required to wear oven mitts when hammering" instead of just... producing a hammer that's not on fire.

From what i saw on the internet, the justification (from MS) was literally "c programmers will be confused if they dont have to put breaks at the end".

 
view more: next ›