Use typedefs for strings, symbols, keywords, tuples, structs, and abstracts. #1246
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR replaces generic
const uint8_t *
andJanet *
types with the more specificJanetString
/JanetSymbol
/JanetKeyword
/JanetTuple
/JanetStruct
/JanetAbstract
.This makes it easier for those who are new to the C API (such as myself) to figure out what these functions actually return/take as arguments. I specifically had issues understanding how the
janet_getstring
function worked initially because it appeared to return a pointer to the start of the string without a length.AFAICT the only reason these functions do not use the more specific types is because their function signatures predate the typedefs existing.
I'll send a PR to update the corresponding docs at https://janet-lang.org if this gets merged.