diff options
| author | Conrad Ludgate <conradludgate@gmail.com> | 2022-05-28 11:01:09 +0100 |
|---|---|---|
| committer | Conrad Ludgate <conradludgate@gmail.com> | 2022-05-29 20:40:56 +0100 |
| commit | 3f404bfa86ac387228026ad01d29354b7651bceb (patch) | |
| tree | e306c62dc8fade452f43699e12abd4a826e402ab /library/alloc/src | |
| parent | 9d1aeaeb827da7a10b7cfaccf0a1d6ebf414a7b5 (diff) | |
| download | rust-3f404bfa86ac387228026ad01d29354b7651bceb.tar.gz rust-3f404bfa86ac387228026ad01d29354b7651bceb.zip | |
improve format impl for literals
Diffstat (limited to 'library/alloc/src')
| -rw-r--r-- | library/alloc/src/fmt.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/library/alloc/src/fmt.rs b/library/alloc/src/fmt.rs index 73b75ea4d83..a92bdd50cda 100644 --- a/library/alloc/src/fmt.rs +++ b/library/alloc/src/fmt.rs @@ -604,9 +604,15 @@ use crate::string; #[cfg(not(no_global_oom_handling))] #[must_use] #[stable(feature = "rust1", since = "1.0.0")] +#[inline] pub fn format(args: Arguments<'_>) -> string::String { - let capacity = args.estimated_capacity(); - let mut output = string::String::with_capacity(capacity); - output.write_fmt(args).expect("a formatting trait implementation returned an error"); - output + #[cold] + fn format_cold(args: Arguments<'_>) -> string::String { + let capacity = args.estimated_capacity(); + let mut output = string::String::with_capacity(capacity); + output.write_fmt(args).expect("a formatting trait implementation returned an error"); + output + } + + args.as_str().map_or_else(|| format_cold(args), crate::borrow::ToOwned::to_owned) } |
