Как поместить строку в документацию, которая игнорируется при тестировании документов?

Как я могу написать строку в код документации, но позволить компилятору игнорировать ее?

Я хочу написать

/// # 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

Другие вопросы по тегам