Здравствуйте, kaa.python, Вы писали:
KP>Вообще, я тебя обманул, функции и замыкания вполне себе взаимозаменяемые, и в действительности просто ключевое слово в очередной раз переименовали
Спасибо! Сейчас попробую. Я видел в доках proc, но меня смутило, что такое замыкание может вызываться "единожды". Или имелось в виду — только в одном месте?
KP>struct S1 { name: ~str }
KP>fn foo(name: &str) {
KP> let val = name.into_owned();
KP> let s = S1 { name: val };
KP>}
KP>
ааааа, into_owned()!!!... пойду ещё раз гляну документацию
И сразу ещё вопрос:
внутри функции создаю структуру и передаю указатель на неё в сишную либу (а-ля регистрация клбэков):
pub struct MyCallback<'a> { ... }
pub fn f1(...) {
let rcs = ~MyStruct { ... };
unsafe { __ext_func(to_unsafe_ptr(rcs), ...); }
}
После завершения этой функции rcs дропнется? Судя по аварийному завершению при попытке в другой функции восстановить структуру из пришедшего указателя, это так.
Как "заморозить" структуру?
Пытаюсь создать static вектор верхнего уровня модуля для "хранения" подобных структур — не получается

Как?!