Não entendi bem a ideia de mutabilidade em Rust na seguinte situação:
- Vec mutável com elementos mutáveis
- Vec mutável com elementos imutáveis
- Vec imutável com elementos mutáveis
- Vec imutável com elementos imutáveis.
Até onde eu entendi, se ambos são imutáveis (4), então é apenas um vetor somente leitura. Mas, desde que eu torne o vetor mutável, não importa se os elementos são mutáveis ou não...
Com vetor mutável eu sempre posso mutar elementos mesmo que eu não os tenha tornado mutáveis...
let mut st1 = String::from("Some");
let mut st2 = String::from("Value");
let vec: Vec<&mut str> = vec![&mut st1, &mut st2];
Alguém pode explicar em quais situações as combinações acima devem ser usadas e se há certos limites para cada uma delas?
Muito obrigado!