Replace Array<char> with Array<T> or Array<std::string> implementation.
- Dominant language
- C++
- Stars
- 406
- Forks
- 134
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 24
Description
`Array` is used in the Indigo as string-buffer.
```cpp
// typical pattern (array.h)
void appendString(const char* str, bool keep_zero) {
int len = (int)strlen(str);
int initial_size = _length;
if (initial_size > 0 && _array[initial_size - 1] == 0)
initial_size--;
resize(initial_size + len);
memcpy(_array + initial_size, str, len);
if (keep_zero)
push(0);
}
```
This is manual zer-termination, manual `memcpy` and `Array` - specific method is a representation of legacy pattern which is duplicate `std:;string`;
It's used in Names/properties (MOL, SDF, RDF), Binary buffers (CMF, fingerprints), Output `printf` buffer and byte buffers for Python/Java integration.
**Acceptance Criteria**:
- [ ] All loaders (MOL/SDF/RDF/CDX/SMILES) uses `std::string` or equivalent of type for property names.
- [ ] `Output::printf` accepts `std::string`/`std::format` like style argument.
- [ ] All kind of bindings are simplified which allows to use simple and direct mapping.
- [ ] All new and existing Unit test provided and passed.
- [ ] No regressions on any levels and parsing.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.