News for hackers. Stuff that matters.
Re:Rust 1.64.0 by cyber_kinetist on Thursday September 22, 2022 @12:57PM (#32941594)
Can’t you pass “argument” structs as parameters to kinda emulate the feel of named arguments (along with using the Default trait)? I use this in C++ a lot, and it seems that some Rust devs are doing this too.
Re:Rust 1.64.0 by kevincox on Thursday September 22, 2022 @01:30PM (#32942057)
You can, but it is a mouthful. Especially if you want optional arguments.

    foo::some_func(foo::SomeFuncArgs{
      a: 8,
      b: Some(false),
      ..Default::default()
    })
Personally I would be really happy if `..` could default to `..Default::default()` which would make this a lot cleaner. But even then needing to name a type for the argument struct is noisy. Language-integrated keyword arguments would make this a lot cleaner:

    foo::some_func(
        a=8,
        b=Some(false))
Re:Rust 1.64.0 by cyber_kinetist on Saturday September 24, 2022 @06:20AM (#32961233)
By the way, C++20 designated initializers works like a charm for this.

  foo::some_func({
    .a = 8, 
    .b = false
  });
(I view this and std::span as the only two usable features in C++20, and pretty much everything else can go to the dustbin or the drawing board.)
Re:Rust 1.64.0 by estebank on Monday September 26, 2022 @09:25AM (#32982814)
I'm waiting to getting some spare time to propose (not quite but very close) that in an RFC. A lot of conversation about it from a while back is available at https://internals.rust-lang.org/t/pre-pre-rfc-syntactic-suga...
Re:Rust 1.64.0 by cercatrova on Friday September 23, 2022 @12:12AM (#32947969)
Indeed, it's basically the same as in JS/TS where you just pass an object of key/values rather than have named arguments.
Re:Rust 1.64.0 by kevincox on Friday September 23, 2022 @06:39AM (#32950117)
Yes, but it is a lot cleaner there because you don't need to specify the name of the type and you don't need to do anything special for optional arguments.

I wouldn't mind if it worked this way "under the hood" but syntax sugar for passing that last argument as keyword arguments would be a fantastic quality of life improvement.