codeinabox@programming.dev to Rust@programming.devEnglish · 1 month agoArguing about argumentssteveklabnik.comexternal-linkmessage-square17linkfedilinkarrow-up11
arrow-up11external-linkArguing about argumentssteveklabnik.comcodeinabox@programming.dev to Rust@programming.devEnglish · 1 month agomessage-square17linkfedilink
minus-squareanton@lemmy.blahaj.zonelinkfedilinkarrow-up0·1 month agoWith newtypes you can also emulate named args with a single struct. This also allows them to be passed on together. struct RectArgs{ x:i32, y:32, w:32, h:32, } impl Default for RectArgs{...} Then the call site looks like this: rect(RectArgs{ x:0, y:0, w:30, h:20, } // with default arguments rect(RectArgs{ w:30, h:20, .. RectArgs::default () }
minus-squareesa@discuss.tchncs.delinkfedilinkarrow-up0·1 month agoYeah, though in those cases you’re going to get an extra question about why rect is a function and not a method, e.g. Rect { w: 30, h: 20, .. RectArgs::default() }.do_the_thing()
minus-squareanton@lemmy.blahaj.zonelinkfedilinkarrow-up0·1 month agoI assumed the rect is a method on something like a graphics context or physics engine, but yeah.
With newtypes you can also emulate named args with a single struct. This also allows them to be passed on together.
struct RectArgs{ x:i32, y:32, w:32, h:32, } impl Default for RectArgs{...}Then the call site looks like this:
rect(RectArgs{ x:0, y:0, w:30, h:20, } // with default arguments rect(RectArgs{ w:30, h:20, .. RectArgs::default () }Yeah, though in those cases you’re going to get an extra question about why
rectis a function and not a method, e.g.Rect { w: 30, h: 20, .. RectArgs::default() }.do_the_thing()I assumed the rect is a method on something like a graphics context or physics engine, but yeah.