Это правда, что зиг не поддерживает интерфейсы (а ля чисто-абстрактные классы в c++, impl в rust и т.д.)? Т.е. надо в коде всё время бойлерплейт вставлять, типа:
fn add(a: anytype, b: @TypeOf(a)) @TypeOf(a) {
comptime {
if (!@hasDecl(@TypeOf(a), "add"))
@compileError("type must support add");
}
return a + b;
}
Если реально так, то не понимаю, кому может понравиться така поделка. Как вообще документировать интерфейсы либ, фреймворков? А если никто не написал документацию (стандартный сценарий развития разработки)?


