Avatar ·

Como repetir uma string várias vezes em Rust? Exemplo com multiplicação de string por número

Olá, colegas! Acabei de começar a aprender Rust e me deparei com um problema inesperado. Em Python, estou acostumado a escrever algo como `"hello" * 3` para obter `"hellohellohello"`. Em Rust, tentei fazer o mesmo: ```rust fn main() { let s = "hello" * 3; println!("{}", s); } ``` Mas o compilador retorna um erro: `cannot multiply `&str` by `{integer}``. Entendo que Rust é uma linguagem fortemente tipada e a multiplicação de strings por números não é definida por padrão, mas então como repetir uma string corretamente várias vezes? Li que em Rust existem traits e métodos, mas ainda não entendi direito. Preciso repetir uma string dinamicamente, por exemplo, para criar um separador na saída: repetir `"---"` 10 vezes para obter uma string de 30 hífens. Também gostaria de entender como fazer isso de forma eficiente, sem alocações desnecessárias, se a string for grande. Por favor, me digam como resolver esse problema corretamente em Rust? Existe uma função embutida ou macro para isso? Ou preciso escrever minha própria implementação usando um loop?