On Sunday, 25 July 2021 at 05:10:32 UTC, someone wrote:
As you can see in the following code I cannot avoid to type the public immutable enum structureLocations = [
   r"BUE"d : typeLocation(r"arg"d, r"Buenos Aires"d, r"ART"d),
   r"GRU"d : typeLocation(r"bra"d, r"São Paulo"d, r"BRT"d),

Coudln't you instead just do like

enum structureLoctations = {
   BUE = typeLocation......,
   GRU = typeLiocation....
}


?


Then you can build a runtime hash map if you need it in a static constructor or use a binary search switch to convert from strings and look up the id from reflection. It depends on the usage.


static foreach(
   structureExchange sudtExchange;
   structureExchanges.byKeyValue
   ) {

You can also try a normal foreach


foreach(k, v; structureExchanges) {
    // use k and v
}


static foreach might work too but assocative arrays are weird beasts that needs to exist all at run time or all at compile time; they cannot cross the barrier and use one item for both.

But the built-in k,v instead of byKeyValue might help anyway.

Reply via email to