Update 'README.md'

This commit is contained in:
Reece Wilson 2021-10-05 21:03:13 +00:00
parent 87c9a063ea
commit 1d86f5c341

View File

@ -1,7 +1,10 @@
## Aurora Interfaces
This library implements the macros required to define Aurora style interfaces. Defines two classes. Implementable by SWIG, CppSharp, and classical OOP override event interface; and implementable by std::function for modern C++ and runtime language bindings respectively. The former is simply defined as a structure containing virtual methods as laid out by AUI_METHODS. Latterly, the interface is extended and mplemented by an array virtual override method defintions.
Example usage:
In your common header:
## Example usage:
#### In your common header:
```
#if defined(MY_LIB_GEN_BINDINGS)
#define LIB_INTERFACE(name, list) AUI_INTERFACE_IMPL(name, list)
@ -10,7 +13,7 @@ In your common header:
#endif
```
In your public API:
#### In your public API:
```
LIB_INTERFACE(IInputMouseSubscriber,
AUI_METHODS
@ -22,11 +25,12 @@ In your public API:
);
```
In a dedicated translation unit:
#### In a dedicated translation unit:
```
#define MY_LIB_GEN_BINDINGS
#include <...>
```
Not recommended for small projects and/or people with a shred of sanity left
##### Not recommended for small projects and/or people with a shred of sanity left
##### Possibly useful for API developers