Есть вопрос по строкам (str не String) в Rust, насколько я понял строки это по сути теже масивы (&[u8]) но со своими особенностями.
И все было более мение понятно пока я не попытался разобраться в деталях работы/реализации вот этого метода (часть документации):
fn get<I>(&self, i: I) -> Option<&<I as SliceIndex<str>>::Output>
where
I: SliceIndex<str>
Я пошел смотреть исходники libcore (1.16.0) и во первых я не нашел там объявления этого метода, зато есть get для SliceExt:
fn get<I>(&self, index: I) -> Option<&I::Output>
where I: SliceIndex<Self::Item>;
Во вторых имплиментация SliceIndex (для Range) указывает Output тип как:
type Output = [T];
Может ктото растолковать где я запутался ?