Skip to content

Commit

Permalink
Rollup merge of rust-lang#133498 - GuillaumeGomez:missing-examples, r…
Browse files Browse the repository at this point in the history
…=joboet

Add missing code examples on `LocalKey`

r? `@Amanieu`
  • Loading branch information
joboet authored Nov 27, 2024
2 parents f32f6e7 + 02c3e6d commit bf0d7c8
Showing 1 changed file with 28 additions and 2 deletions.
30 changes: 28 additions & 2 deletions library/std/src/thread/local.rs
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,19 @@ impl<T: 'static> LocalKey<T> {
/// This function will `panic!()` if the key currently has its
/// destructor running, and it **may** panic if the destructor has
/// previously been run for this thread.
///
/// # Examples
///
/// ```
/// thread_local! {
/// pub static STATIC: String = String::from("I am");
/// }
///
/// assert_eq!(
/// STATIC.with(|original_value| format!("{original_value} initialized")),
/// "I am initialized",
/// );
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
pub fn with<F, R>(&'static self, f: F) -> R
where
Expand All @@ -273,6 +286,19 @@ impl<T: 'static> LocalKey<T> {
///
/// This function will still `panic!()` if the key is uninitialized and the
/// key's initializer panics.
///
/// # Examples
///
/// ```
/// thread_local! {
/// pub static STATIC: String = String::from("I am");
/// }
///
/// assert_eq!(
/// STATIC.try_with(|original_value| format!("{original_value} initialized")),
/// Ok(String::from("I am initialized")),
/// );
/// ```
#[stable(feature = "thread_local_try_with", since = "1.26.0")]
#[inline]
pub fn try_with<F, R>(&'static self, f: F) -> Result<R, AccessError>
Expand Down Expand Up @@ -452,7 +478,7 @@ impl<T: 'static> LocalKey<RefCell<T>> {
/// Panics if the key currently has its destructor running,
/// and it **may** panic if the destructor has previously been run for this thread.
///
/// # Example
/// # Examples
///
/// ```
/// use std::cell::RefCell;
Expand Down Expand Up @@ -483,7 +509,7 @@ impl<T: 'static> LocalKey<RefCell<T>> {
/// Panics if the key currently has its destructor running,
/// and it **may** panic if the destructor has previously been run for this thread.
///
/// # Example
/// # Examples
///
/// ```
/// use std::cell::RefCell;
Expand Down

0 comments on commit bf0d7c8

Please sign in to comment.