www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - aslike: duck-typing with check interface

Hello!

I wrote library, that can be helpful in some cases:

1. easy and readable check interface of structures without 
'templatisation' of function or method
2. cache virtual methods table lookup for OOP implementations

using:
1. define interface
2. use `Like` wrap as argument
3. wrap objects by `as` function

example:
https://github.com/deviator/aslike/blob/master/example/struct/app.d
https://github.com/deviator/aslike/blob/master/example/cache/app.d

in cache example at my machine I have ~2 increase of performance:

```
$ ldc2 -O -I../../source/ app.d; and rm app.o; and ./app
delegates avg: [18 ms, 281 μs, and 7 hnsecs]
impliface avg: [36 ms, 70 μs, and 3 hnsecs]
likecache avg: [18 ms and 243 μs]
```

dub: https://code.dlang.org/packages/aslike
git: https://github.com/deviator/aslike
Jul 11 2020