Одиночки
Атрибут app
знает о библиотеке owned-singleton
и её атрибуте Singleton
.
Когда этот атрибут применяется к одному из ресурсов, рантайм производит для Вас
unsafe
инициализацию одиночки, проверяя, что только один экземпляр одиночки
когда-либо создан.
Заметьте, что когда Вы используете атрибут Singleton
, Вым нужно иметь
owned_singleton
в зависимостях.
В примере ниже атрибутом Singleton
аннотирован массив памяти,
а экземпляр одиночки использован как фиксированный по размеру пул памяти
с помощью одной из абстракций alloc-singleton
.
# #![allow(unused_variables)] #fn main() { {{#include ../../../../examples/singleton.rs}} #}
$ cargo run --example singleton
bar(2)
foo(1)