FFXIVClientStructs
FFXIVClientStructs copied to clipboard
Implement STL containers with C# collection views
Continuation of #666, per @MidoriKami's request.
Tests are not done in a comprehensive way. It is possible that some parts of it has to be patched on use.
- Implements move/copy/default construction semantics for operations that modifies the struct or underlying buffer.
- Implements
IMemorySpacespecification using generic types. - Implements
std::list,std::vector,std::basic_string,std::set,std::pair,std::mapfor both read/write operations. - Implements
std::dequefor read operations. StdLinkedListis not touched for the time being.
Usage notes
If the contained type is not trivial, then any mutating operation will cause undefined behavior, until the contained type gets IStaticNativeObjectOperation<T> recursively implemented.
Decided that having a PointerSpan<T> would make things much more convenient.
We'll have to hold on merging this til an API bump presumably.