On Monday, 20 December 2021 at 18:23:44 UTC, rempas wrote:
On Monday, 20 December 2021 at 18:12:35 UTC, Stanislav Blinov
wrote:
https://dlang.org/spec/traits.html#identifier
Thanks!!! Finally I was able to do it! The code is the
following (well not in my final project but it's a
demonstration):
```
enum add_char(string c) =
`if (stdout_index < STDOUT_BUF_LEN) {
stdout_buffer[stdout_index++] =` ~ c ~ `;
continue;
} else {
sys_write(1, stdout_buffer.ptr, cast(i32)stdout_index);
stdout_index = 0;
stdout_buffer[stdout_index++] =` ~ c ~ `;
continue;
}`;
void main() {
mixin(add_char!(__traits(identifier, c)));
}
```
I don't know if there is another way to do it but this works
for me. Also another thing that I want to ask is if the "mixin"
is generated every time inside a loop and if there is a better
way to do that?
You can see the ["String mixins" section
here](http://ddili.org/ders/d.en/mixin.html) for more details.
Mixins are generated at compile time, so if you're referring to a
string mixin inside a runtime loop, the code will not be
generated every time the loop runs.