diff --git a/Jupiter/Readable_String.h b/Jupiter/Readable_String.h index e13d654..95f6da3 100644 --- a/Jupiter/Readable_String.h +++ b/Jupiter/Readable_String.h @@ -329,6 +329,14 @@ namespace Jupiter /** Length of 'tokens' array */ size_t token_count; + /** + * @brief A safe accessor method, for fetching tokens. + * + * @param index Index of token to fetch + * @return The token at the specified index if it exists, an empty string otherwise. + */ + const R &getToken(size_t index) const; + /** * @brief Default constructor for the TokenizeResult class. * Note: 'tokens' assigned nullptr, and 'token_count' is assigned 0. diff --git a/Jupiter/Readable_String_Imp.h b/Jupiter/Readable_String_Imp.h index 5b4f1f0..e1edf34 100644 --- a/Jupiter/Readable_String_Imp.h +++ b/Jupiter/Readable_String_Imp.h @@ -1346,6 +1346,13 @@ template template class R> Jupiter::Readable_Stri delete[] Jupiter::Readable_String::TokenizeResult::tokens; } +template template class R> const R &Jupiter::Readable_String::TokenizeResult::getToken(size_t index) const +{ + if (index < Jupiter::Readable_String::TokenizeResult::token_count) + return Jupiter::Readable_String::TokenizeResult::tokens[index]; + return R::empty; +} + // tokenize template template class R> typename Jupiter::Readable_String::TokenizeResult Jupiter::Readable_String::tokenize(const Jupiter::Readable_String &in, const T &token) diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index d09d6b2..f0f1838 100644 Binary files a/Release/Jupiter.lib and b/Release/Jupiter.lib differ