Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> this function should take a Writer

I think some of this can be achieved in the function body by checking the incoming generic types via Zig's comptime type inspection features (see: https://ziglang.org/documentation/master/#typeInfo). Kinda like 'comptime type-asserts'. Together with @compileError this would at least provide more useful error messages if a generic type doesn't have the expected features.

PS: I think it's important to not look at Zig's generic feature in isolation, instead it goes hand in hand with comptime and reflection.



How do you query if the type implements a particular method?


There's a std.meta.trait.hasFn() comptime helper function in the stdlib:

https://www.godbolt.org/z/xe98Md74r

E.g. if you change the method 'bla' to something else:

https://www.godbolt.org/z/77118zG1K

...there's probably more advanced helper functions in the same std.meta.trait module, I haven't explored that yet.

Also, disclaimer: I haven't dabbled much yet with Zig generics, don't know if this is the proper style (in this case it's probably better to get rid of T entirely and just use anytype for the obj argument).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: