doc: guarantee call order for sort_by_cached_key

`slice::sort_by_cached_key` takes a caching function
`f: impl FnMut(&T) -> K`, which means that the order that calls to the
caching function are made is user-visible. This adds a clause to the
documentation to promise the current behavior, which is that `f` is
called on all elements of the slice from left to right, unless the slice
has len < 2 in which case `f` is not called.
This commit is contained in:
Mario Carneiro 2021-10-07 03:33:00 -07:00 committed by GitHub
parent ca8078d7b2
commit 3eb87dbe2d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -374,7 +374,8 @@ pub fn sort_by_key<K, F>(&mut self, mut f: F)
/// During sorting, the key function is called only once per element.
///
/// This sort is stable (i.e., does not reorder equal elements) and *O*(*m* \* *n* + *n* \* log(*n*))
/// worst-case, where the key function is *O*(*m*).
/// worst-case, where the key function is *O*(*m*). If the slice requires sorting,
/// the key function is called on all elements of the slice in the original order.
///
/// For simple key functions (e.g., functions that are property accesses or
/// basic operations), [`sort_by_key`](slice::sort_by_key) is likely to be