почему не std::string_view спросят знающие люди — отвечу, потому что sizeof(std::string_view) = 2 * 8 = 16 байт, и там работа с указателями. мне удобнее хранить индексы по смещению внутри. у меня же u32 + u32 = 8 байт, хотя хватило бы и u16 на самом деле