Как я могу ограничить время жизни структуры временем жизни «родительской» структуры?

Я использую FFI для написания кода на Rust для C API с четкими представлениями о праве собственности ( libnotmuch API, если это важно).Основная точка входа в API - это база данных;Я могу создавать объекты запросов из базы данных.Он предоставляет функции деструктора для баз данных и запросов (и многих других объектов).Однако запрос не может пережить базу данных, из которой он был создан.Функция деструктора базы данных уничтожит все неразрушенные запросы и т. Д., После чего деструкторы запросов не работают.Пока у меня есть основные части работы - я могу создавать базы данных и запросы и выполнять с ними операции.Но мне трудно кодировать границы времени жизни.Я пытаюсь сделать что-то вроде этого:У меня есть реализации ---- +: = 1 =: + ---- для каждого из них, которые вызывают базовые функции деструктора C.А затем есть функция, которая создает запрос:Я не знаю, что поставить вместо ---- +: = 3 =: + ---- s, чтобы возвращенный запрос не смог пережить Db.Как я могу смоделировать ограничения срока службы для этого API?
7 голосов | спросил Michael Ekstrand 11 Jpm1000000pmSun, 11 Jan 2015 23:35:33 +030015 2015, 23:35:33

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132