Как поместить строку в документацию, которая игнорируется при тестировании документов?
Как я могу написать строку в код документации, но позволить компилятору игнорировать ее?
Я хочу написать
/// # Examples
///
/// To clone something, do
///
/// ```
/// IGNORE_FOR_COMPILATION_BUT_SHOW: let cloned = myValue.clone();
/// # let cloned = 5.clone();
/// ```
И я хочу получить:
Примеры
Чтобы что-то клонировать, делай
let cloned = myValue.clone();
Но компилятор все равно должен скомпилировать пример (клонирование 5).
РЕДАКТИРОВАТЬ: Я также хочу груз, чтобы привести пример, но пропустить одну строку.
2 ответа
В документации сказано, что вы можете сделать это:
/// ```rust,ignore
/// highlighted as rust code but ignored by rustdoc
/// ```
Существует также rust,no_run
который компилируется, но не запускает пример кода.
В качестве альтернативы вы можете использовать то же решение, что и в обычном коде: закомментировать его.
/// ```rust
/// let x=5;
/// // x = 6; // won't be run
/// assert_eq!(x, 5);
/// ```
Если вы хотите игнорировать часть кода Rust в doctests, вы можете прочитать раздел о выполнении тестов документации. В основном извлеките этот код в другой блок и установите для этого блока значение rust,ignore
,
Это будет игнорировать IGNORE_FOR_COMPILATION_BUT_SHOW
полностью, но остальные будут работать:
///```rust,ignore
///IGNORE_FOR_COMPILATION_BUT_SHOW: let cloned = myValue.clone();
///```
///```rust
/// # let cloned = 5.clone();
/// ```
Если вы хотите, чтобы rustdoc скомпилировал ваши тесты документов, но не запустил его, вы можете использовать rust,no_run