// Создайте структуру Wrapper с одним полем value: T: // ● Реализуйте метод map(self, f: F) -> Wrapper, где F: FnOnce(T) -> U. // ● Метод должен применāтþ функøиĀ f к value и возвраûатþ новýй Wrapper с резулþтатом. #![allow(clippy::approx_constant)] struct Wrapper { value: T, } impl Wrapper { // Создаем новый Wrapper fn new(value: T) -> Self { Self { value } } // Применяем функцию к значению и возвращаем новый Wrapper fn map(self, f: impl FnOnce(T) -> U) -> Wrapper { Wrapper::new(f(self.value)) } } fn main() { // Пример из задания let w = Wrapper { value: 42 }; let w2 = w.map(|x| x.to_string()); println!("{}", w2.value); // "42" // Дополнительные примеры let w3 = Wrapper::::new(3.14); let w4 = w3.map(|x| x.floor() as i32); println!("{}", w4.value); // 3 let w5 = Wrapper::new("hello"); let w6 = w5.map(|s| s.len()); println!("{}", w6.value); // 5 }