Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Среда выполнения 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 приложениями, которые не хотят отображать консольное окно при запуске.