Skip to content

Commit

Permalink
Implemented #[doc(cfg(...))].
Browse files Browse the repository at this point in the history
This attribute has two effects:

1. Items with this attribute and their children will have the "This is
   supported on **** only" message attached in the documentation.

2. The items' doc tests will be skipped if the configuration does not
   match.
  • Loading branch information
kennytm committed Aug 10, 2017
1 parent 8f935fb commit a2b8886
Show file tree
Hide file tree
Showing 12 changed files with 1,126 additions and 13 deletions.
42 changes: 42 additions & 0 deletions src/doc/unstable-book/src/language-features/doc-cfg.md
@@ -0,0 +1,42 @@
# `doc_cfg`

The tracking issue for this feature is: [#43781]

------

The `doc_cfg` feature allows an API be documented as only available in some specific platforms.
This attribute has two effects:

1. In the annotated item's documentation, there will be a message saying "This is supported on
(platform) only".

2. The item's doc-tests will only run on the specific platform.

This feature was introduced as part of PR [#43348] to allow the platform-specific parts of the
standard library be documented.

```rust
#![feature(doc_cfg)]

#[cfg(any(windows, feature = "documentation"))]
#[doc(cfg(windows))]
/// The application's icon in the notification area (a.k.a. system tray).
///
/// # Examples
///
/// ```no_run
/// extern crate my_awesome_ui_library;
/// use my_awesome_ui_library::current_app;
/// use my_awesome_ui_library::windows::notification;
///
/// let icon = current_app().get::<notification::Icon>();
/// icon.show();
/// icon.show_message("Hello");
/// ```
pub struct Icon {
// ...
}
```

[#43781]: https://github.com/rust-lang/rust/issues/43781
[#43348]: https://github.com/rust-lang/rust/issues/43348

0 comments on commit a2b8886

Please sign in to comment.