Существует ли перечисление/признак для принадлежащих значений в целом, когда вы не хотите указывать, как именно значение принадлежит (совместно или нет), но вы просто хотите им владеть.< br> Мне нужно хранить ссылки на замыкания в структуре, а это значит, что они должны жить, пока существует структура. Я не могу копировать их, конечно, поэтому они должны быть ссылками. Но я не хочу вводить ограничения, поэтому пользователь структуры должен иметь возможность выбирать, как он хочет передать право собственности.
Это общая проблема, когда вы не можете скопировать значения или если они действительно большой.
Очень общий пример, я ищу это Owned<T>
struct Holder<T> {
value: Owned<T>,
}
...
let rc = Rc::new(variable);
let holder = Holder::new(rc.clone());
let holder2 = Holder::new(Box::new(variable2));
Примером очень простой «реализации» этого типа может быть:
enum Owned<T> {
Unique(Box<T>),
Shared(Rc<T>),
}
Надеюсь, я смог объяснить, что я имею в виду.