Среда выполнения Rust (The Rust runtime)
Этот раздел документирует особенности, которые определяют некоторые аспекты среды выполнения Rust.
Атрибут global_allocator
Атрибут global_allocator attributes выбирает распределитель памяти.
Example
#![allow(unused)] fn main() { use core::alloc::{GlobalAlloc, Layout}; use std::alloc::System; struct MyAllocator; unsafe impl GlobalAlloc for MyAllocator { unsafe fn alloc(&self, layout: Layout) -> *mut u8 { unsafe { System.alloc(layout) } } unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { unsafe { System.dealloc(ptr, layout) } } } #[global_allocator] static GLOBAL: MyAllocator = MyAllocator; }
Атрибут global_allocator использует синтаксис MetaWord.
Атрибут global_allocator может быть применен только к статическому элементу, тип которого реализует трейт GlobalAlloc.
Атрибут global_allocator может быть использован только один раз на элементе.
Атрибут global_allocator может быть использован только один раз в графе крейтов.
Атрибут global_allocator экспортируется из прелюдии стандартной библиотеки.
Атрибут windows_subsystem
Атрибут windows_subsystem attributes устанавливает подсистему при линковке на цели Windows.
Example
#![allow(unused)] #![windows_subsystem = "windows"] fn main() { }
Атрибут windows_subsystem использует синтаксис MetaNameValueStr. Принимаемые значения: "console" и "windows".
Атрибут windows_subsystem может быть применен только к корню крейта.
Только первое использование windows_subsystem имеет эффект.
Note
rustcвыдает предупреждения против любого использования после первого. Это может стать ошибкой в будущем.
Атрибут windows_subsystem игнорируется на не-Windows целях и не-bin типах крейтов.
Подсистема "console" является подсистемой по умолчанию. Если консольный процесс запускается из существующей консоли, то он будет присоединен к этой консоли; в противном случае будет создано новое консольное окно.
Подсистема "windows" будет запущена отдельно от любой существующей консоли.
Note
Подсистема
"windows"обычно используется GUI приложениями, которые не хотят отображать консольное окно при запуске.