aboutsummaryrefslogtreecommitdiffstats
path: root/tools/console.h
AgeCommit message (Collapse)AuthorFilesLines
2022-01-28Make environments and sinks part of the worldDavid Robillard1-1/+2
Although functions/components that require minimal pre-existing state are nice, these allocate memory and could potentially share resources. So, give them a pointer to a world which can be used to configure such things. In particular, this is working towards supporting custom allocators everywhere.
2022-01-28Simplify input stream APIDavid Robillard1-4/+5
More or less the same rationale as the previous commit, but for reading. This makes for nice symmetry with writing, at the cost of a slightly more annoying reader interface since the source doesn't know its block size or name.
2022-01-28Simplify output stream APIDavid Robillard1-6/+6
This makes the paging mechanism an internal detail once again. While it's conceptually elegant to simply have a single write interface and have the block dumper just be another implementation of that, unfortunately it is not practical. The inlining of serd_block_dumper_write() is a significant performance boost, because it avoids a non-inlinable function call of overhead per character. Compared to the SerdByteSink approach, this removes the burden and overhead of needing to dynamically allocate the structure itself.
2022-01-28Replace serdi with more fine-grained toolsDavid Robillard1-4/+100
Especially with the new functionality, the complexity of the command-line interface alone was really becoming unmanageable. The serdi implementation also had the highest cyclomatic complexity of the entire codebase by a huge margin. So, take a page from the Unix philosophy and split serdi into several more finely-honed tools that can be freely composed. Though there is still unfortunately quite a bit of option overlap between them due to the common details of reading RDF, I think the resulting tools are a lot easier to understand, both from a user and a developer perspective.
2022-01-28Factor out serd_choose_input_syntax()David Robillard1-0/+5
2022-01-28Collapse input and output options into a single flagDavid Robillard1-0/+10
2022-01-28Move serdi to tools subdirectoryDavid Robillard1-0/+34
This separates the command-line tool code from the library implementation.