diff options
Diffstat (limited to 'book/ru/src/by-example/singletons.md')
| -rw-r--r-- | book/ru/src/by-example/singletons.md | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/book/ru/src/by-example/singletons.md b/book/ru/src/by-example/singletons.md new file mode 100644 index 0000000..d6d60ef --- /dev/null +++ b/book/ru/src/by-example/singletons.md @@ -0,0 +1,26 @@ +# Одиночки + +Атрибут `app` знает о библиотеке [`owned-singleton`] и её атрибуте [`Singleton`]. +Когда этот атрибут применяется к одному из ресурсов, рантайм производит для Вас +`unsafe` инициализацию одиночки, проверяя, что только один экземпляр одиночки +когда-либо создан. + +[`owned-singleton`]: ../../api/owned_singleton/index.html +[`Singleton`]: ../../api/owned_singleton_macros/attr.Singleton.html + +Заметьте, что когда Вы используете атрибут `Singleton`, Вым нужно иметь +`owned_singleton` в зависимостях. + +В примере ниже атрибутом `Singleton` аннотирован массив памяти, +а экземпляр одиночки использован как фиксированный по размеру пул памяти +с помощью одной из абстракций [`alloc-singleton`]. + +[`alloc-singleton`]: https://crates.io/crates/alloc-singleton + +``` rust +{{#include ../../../../examples/singleton.rs}} +``` + +``` console +$ cargo run --example singleton +{{#include ../../../../ci/expected/singleton.run}}``` |
