• nous@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    You can give it variables:

    let foo = 4;
    let bar = "bar";
    format!("{foo}{bar}");
    

    If you have a format string that long with arbatary expressions putting them all raw in the format string is not going to improve much. Better to give them actual names first.

    • Walnut356@programming.devOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 year ago

      in this case it’s about 80% function calls. They’re convenience functions for assembly instructions, so they’re of the form:

      load(Reg::D, "A"),
      load_const(5),
      

      which is more useful than variables would be. I guess i could use .join or a crate like concat_string? Either way i sorely miss arbitrary expression format strings from python =(

      • lad@programming.dev
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        As far as I remember, the point for not allowing arbitrary expressions is that it makes what looks like formatting an arbitrary complex operation and that it doesn’t improve readability that much.

        Although sometimes I miss being able to refer to fields in format, for function calls and especially this many, I agree with an advice to put strings in a vector and joining them. Plus, there is a limit to how many arguments format macro can accept, iirc