Add a simple example for future::select()
@@ -27,6 +27,34 @@ impl<A: Unpin, B: Unpin> Unpin for Select<A, B> {}
///
/// # Examples
///
+/// A simple example
+///
+/// ```
+/// # futures::executor::block_on(async {
+/// use futures::future::{self, Either};
+/// use futures::pin_mut;
+///
+/// // These two futures have different types even though their outputs have the same type
+/// let future1 = async { 1 };
+/// let future2 = async { 2 };
+///
+/// // 'select' requires Future + Unpin bounds
+/// pin_mut!(future1);
+/// pin_mut!(future2);
+///
+/// let value = match future::select(future1, future2).await {
+/// Either::Left((value1, _)) => value1, // `value1` is resolved from `future1`
+/// // `_` represents `future2`
+/// Either::Right((value2, _)) => value2, // `value2` is resolved from `future2`
+/// // `_` represents `future1`
+/// };
+///
+/// assert!(value == 1 || value == 2);
+/// # });
+/// ```
+///
+/// A more complex example
+///
/// ```
/// use futures::future::{self, Either, Future, FutureExt};
///
