2101
121
2102
15
2103
9
submitted 2 years ago* (last edited 2 years ago) by thingsiplay@beehaw.org to c/programming@programming.dev

Hello folks. So I'm still not good at Rust and learn even basics after years (just on and off doing some stuff). I'm currently working on my first small GUI application with FLTK in Rust. It's not that important for my question, but I think this gives a bit of context. The actual question is about struct and impl, using a builder pattern like pattern, but without impl builder and build() function.

Normally with the builder pattern, there are at least two structs and impl blocks. One dedicated to build the first struct. But I am doing it with only one struct and impl block, without a build() function. But it is functionally (at least conceptional) the same, isn't it? A shorted example for illustration:

Edit: Man beehaw is ruining my code blocks removing the opening character for >, which wil be translated to < or or completely removed. I use a % to represent the opening.

struct AppSettings {
    input_directory: Option%PathBuf>,
    max_depth: u8,
}

impl AppSettings {
    fn new() -> Self {
        Self {
            input_directory: None,
            max_depth: 1,
        }
    }

    fn input_directory(mut self, path: String) -> Self {
        self.input_directory = match path.fullpath() {
            Ok(p) => Some(p),
            Err(_) => None,
        };

        self
    }

    fn max_depth(mut self, levels: u8) -> Self {
        self.max_depth = levels;

        self
    }
}

And this is then used in main like

    let mut appsettings = AppSettings::new()
        .input_directory("~/test".to_string())
        .max_depth(3);

BTW I have extended PathBuf and String with a few traits. So if you wonder why I have code like this path.fullpath() . So just ignore that part. I'm just asking about the builder pattern stuff. This works for me. Do I miss something? Why would I go and do the extra step of creating another struct and impl block to build it and a final struct, that is basically the same? I don't get that.

Is this approach okay in your mind?

2104
59
2105
24
2024 Stack Overflow Developer Survey (survey.stackoverflow.co)
2106
42
2107
18
2108
7

In this article, we will explore the key differences between Ktor and Spring Boot for Kotlin developers based on the experience of various developers.

2109
29
2110
15

Massive context window, free tier, suuuuuuuper fast. So far the best copilot I've tested; highly recommended.

2111
8

This article aims to explore several common misconceptions of SwiftUI to help developers better understand and utilize SwiftUI

2112
17

I want to translate the Touhou games into cantonese and I have no idea where to even start. Have any of you made custom tables for foreign scripts? Apparently some people already translated the games into Thai and that sounds like a lot of work

2113
92

Not my blog, but the author's experience reminded me of my own frustrations with Microsoft GitHub.

2114
31

YAML and TOML suck. Long live the FAMF!

2115
34

This part of this blog post has always made me happy and I come back it from time to time. This is regarding the scene in Tron Legacy when one of the characters stops another from hacking. If you'd like to see the scene for context here it is. The time code is when the particular portion is. https://youtu.be/Qeh3E67brBs&t=231

In addition to visual effects, I was asked to record myself using a unix terminal doing technologically feasible things. I took extra care in babysitting the elements through to final composite to ensure that the content would not be artistically altered beyond that feasibility. I take representing digital culture in film very seriously in lieu of having grown up in a world of very badly researched user interface greeble. I cringed during the part in Hackers (1995) when a screen saver with extruded "equations" is used to signify that the hacker has reached some sort of neural flow or ambiguous destination. I cringed for Swordfish and Jurassic Park as well. I cheered when Trinity in The Matrix used nmap and ssh (and so did you). Then I cringed again when I saw that inevitably, Hollywood had decided that nmap was the thing to use for all its hacker scenes (see Bourne Ultimatum, Die Hard 4, Girl with Dragon Tattoo, The Listening, 13: Game of Death, Battle Royale, Broken Saints, and on and on). In Tron, the hacker was not supposed to be snooping around on a network; he was supposed to kill a process. So we went with posix kill and also had him pipe ps into grep. I also ended up using emacs eshell to make the terminal more l33t. The team was delighted to see my emacs performance -- splitting the editor into nested panes and running different modes. I was tickled that I got emacs into a block buster movie. I actually do use emacs irl, and although I do not subscribe to alt.religion.emacs, I think that's all incredibly relevant to the world of Tron.

2116
33
2117
249
submitted 2 years ago* (last edited 2 years ago) by mac@programming.dev to c/programming@programming.dev
2118
72
2119
117
2120
155
Programming Is Mostly Thinking (agileotter.blogspot.com)
2121
29

I'll need to cite a couple of tweets, so instead of wasting 10 mins to copy paste the data to bibtex I created this script in 30 mins.

2122
19
Toolbox languages (www.hillelwayne.com)
2123
21
2124
37

I just finished watching Why Google Stores Billions of Lines of Code in a Single Repository and honestly, while it looks intriguing, it also looks horrible.

Have you run into issues? Did you love it? How was it/

2125
35
view more: ‹ prev next ›

Programming

28322 readers
685 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 3 years ago
MODERATORS