On 11/17/2025 8:12 PM, John Hubbard wrote:
> On 11/17/25 5:04 PM, Joel Fernandes wrote:
>> On Tue, Nov 18, 2025 at 12:52:47AM +0000, Timur Tabi wrote:
>> [...] 
>>>>> +
>>>>>          Ok(Self {
>>>>> -            imem_sec_load_target: FalconLoadTarget {
>>>>> -                src_start: app0.offset,
>>>>> -                dst_start: 0,
>>>>> -                len: app0.len,
>>>>> +            imem_sec_load_target: if chipset > Chipset::GA100 {
>>>>> +                FalconLoadTarget {
>>>>> +                    src_start: app0.offset,
>>>>> +                    dst_start: 0,
>>>>> +                    len: app0.len,
>>>>> +                }
>>>>> +            } else {
>>>>> +                FalconLoadTarget {
>>>>> +                    src_start: load_hdr.os_code_size,
>>>>> +                    dst_start: app0.offset,
>>>>> +                    len: app0.len,
>>>>> +                }
>>>>
>>>> Can write more succinctly:
>>>>
>>>>   imem_sec_load_target: FalconLoadTarget {
>>>>       src_start: match chipset > Chipset::GA100  {
>>>>           true => app0.offset,
>>>>           false => load_hdr.os_code_size,
>>>>       },
>>>>       dst_start: match chipset > Chipset::GA100 {
>>>>           true => 0,
>>>>           false => app0.offset,
>>>>       
>>>>       len: app0.len,                                                       
>>>>                      
>>>>   },
>>>
>>> Do we really want to use "match" instead of "if", just because we don't 
>>> need "else"?
>>
>> I don't care about the if/else as much as I care about the opportunity to
>> just specify FalconLoadTarget once instead twice. I think the match here is 
>> cleaner for this
>> snippet, but I am Ok with the if/else as well.
>>
>> Something like:
>>    imem_sec_load_target: FalconLoadTarget {
>>        src_start: if chipset > Chipset::GA100  {
>>           app0.offset
>>       } else {
>>            load_hdr.os_code_size
>>       },
>>
>> That would be one more line of code, but pretty much the same.
>>
> 
> You know, this latest snippet looks a little better. The pattern of 
> 
>     match a > b {
>       true => foo,
>         false => bar,
>     }
> 
> is actually not as nice as an if-else, because, well, anytime you
> explicitly compare against true and false, you are likely doing 
> something that the language (any language) has a construct for.
> 
> And in this case, it appears to be "if/else". :)

Yeah, true. As I mentioned I was more referring to the `FalconLoadTarget`
definition. :) I prefer if it is constructed once and then fields conditionally
constructed, if possible.

thanks,

 - Joel

Reply via email to