[habr] Так ли страшен Rust, как его малюют


#1

#2

Хорошо. Тяжело в учении, легко в бою :nerd_face:


#3
fn search<F>(hash: u64, is_match: F, compare_hashes: bool)  
   -> bool
  where for<'b> F: FnMut(&'b K) -> bool

where for такого раньше не встречал и в rustbook не нашёл

это же эквивалентно

fn search<'b, F: 'b>(hash: u64, is_match: F, compare_hashes: bool)  
   -> bool
  where F: FnMut(&'b K) -> bool

возможно ли здесь вообще избавится от where ?


#4

всё выяснил

fn search<'b, F: 'b + FnMut(&'b F) -> bool>(hash: u64, is_match: F, compare_hashes: bool) -> bool {
    true
}

#5

На всякий, кинусь ссылками про такой for<'a>:


#6

Тенкс, весьма полезно.


#7

От информации по ссылкам вопросов возникает ещё больше.

Самое чистое и понятное объяснение higher-ranked trait bound я нашел тут https://stackoverflow.com/questions/35592750/how-does-for-syntax-differ-from-a-regular-lifetime-bound