shimmering clarity standard library https://docs.shimmering-clarity.net/scsl/
Go to file
Kyle Isom 3122ed6ac7 Add circleci config. 2023-10-18 17:57:19 -07:00
.circleci Add circleci config. 2023-10-18 17:57:19 -07:00
.idea Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
cmake Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
.clang-tidy finish doxygen docs. 2023-10-10 02:35:43 -07:00
.gitignore Start StringUtils, update build, add CLion config for code style. 2023-10-14 17:56:26 -07:00
Arena.cc Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
Arena.h Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
Buffer.cc Remove test prints and fix cursor checks in dictionary. 2023-10-16 17:53:50 -07:00
Buffer.h Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
CMakeLists.txt Remove test prints and fix cursor checks in dictionary. 2023-10-16 17:53:50 -07:00
Commander.cc Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
Commander.h Add missing include header. 2023-10-18 16:21:09 -07:00
Dictionary.cc Dictionary conditions reversed. 2023-10-18 17:35:27 -07:00
Dictionary.h Update docs; bump patch version. 2023-10-16 15:03:22 -07:00
Exceptions.cc Trying to get build working on Fedora. 2023-10-18 16:19:09 -07:00
Exceptions.h Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
Flag.cc Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
Flag.h Cleanup example program in Flag docs. 2023-10-16 23:58:49 -07:00
LICENSE Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
Makefile Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
README.md Format README. 2023-10-17 00:45:21 -07:00
StringUtil.cc Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
StringUtil.h Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
TLV.cc Remove test prints and fix cursor checks in dictionary. 2023-10-16 17:53:50 -07:00
TLV.h Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
Test.cc Remove test prints and fix cursor checks in dictionary. 2023-10-16 17:53:50 -07:00
Test.h Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
bufferTest.cc Renaming to scsl. 2023-10-14 18:38:01 -07:00
dictionaryTest.cc Renaming to scsl. 2023-10-14 18:38:01 -07:00
flagTest.cc Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
phonebook.cc Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
scsl.h gitea doesn't support RST READMEs, so renamed this. 2023-10-17 00:44:40 -07:00
scsl.pc.in Renaming to scsl. 2023-10-14 18:38:01 -07:00
scslConfig.cmake Add trailing newline to cmake config. 2023-10-16 21:23:26 -07:00
stringutil_test.cc Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00
testFixtures.h Renaming to scsl. 2023-10-14 18:38:01 -07:00
tlvTest.cc Cleanup code and docs; add missing header. 2023-10-16 04:01:35 -07:00

README.md

scsl : The Shimmering Clarity Standard C++ Library

scsl is a collection of software I found myself needing to use repeatedly.

Full Doxygen documentation is available.

Introduction

This is a collection of C++ code that I find useful in building things. It arose from two main use cases.

The modem

On the one hand, I was building a wireless modem for some Z80 computers I have. I needed to be able to store a phonebook of SSIDs and WPA keys, as well as short names to host:port descriptors. I had a limited amount of persistent NVRAM storage and no SD card or other removeable media, so typical desktop-oriented serialization mechanisms weren't going to really work well. Furthermore, when working with microcontrollers, I prefer not to dynamically allocate memory as much as possible. This led to building out Arena, TLV::Record to store the records, and finally Dictionary to make use of both of them.

Closely related to this, I've been working on building an ARM-based handheld computer, for which I would also need a memory arena.

The text editors

Some time ago, I wrote a console text editor of my own; then later, started working on a graphical editor. For this, I needed some data structures to manage memory in the editor. Thus, Buffer was born.

Finally

I'd been writing Go professionally for a while, but C was my first love. I recently started a job that is mostly in C++, and the best way for me to learn is to build a bunch of stuff with it. So, I took a bunch of micro- controller stuff I'd been writing and started building out some other stuff.

License

Copyright 2023 K. Isom kyle@imap.cc

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.