this post was submitted on 14 Sep 2025
128 points (98.5% liked)

Programmer Humor

41802 readers
22 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 6 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[โ€“] Ephera@lemmy.ml 2 points 7 months ago* (last edited 7 months ago) (1 children)

I've been trying to basically build a library that helps you put together a distribution archive.
And my initial plan for the API looked something like this:

Distribution::new("my-program")
    .dir("assets")
    .file("favicon.png", |path| build_favicon(path));  // "|path| ..." is a lambda function that gets the target path passed in

So, it would allow you to define the file structure, and for the parts that actually need to be built, you'd provide a lambda function, which it would automatically run or not, depending on whether the inputs changed.

Right, inputs, what are those? I kind of need my user to tell me. So, I decided to implement the caching as a separate API, which you would call on your own when you get called by the lambda function.

Then I realized, I kind of don't need the lambda function then. I could just construct file paths and then my user calls their build_favicon(...) function or similar on their own.

There is just one crucial problem with that. This is what the path API in the stdlib looks like:

PathBuf::new("my-program")
    .join("assets")
    .join("favicon.png");

I might not have built anything, really. ๐Ÿซ 

[โ€“] eutampieri@feddit.it 3 points 7 months ago* (last edited 7 months ago)