Rustfmt:版本排序
摘要
rustfmt
使用了一种新的排序算法。
详情
《Rust 风格指南》包含了 排序规则,rustfmt
将这些规则应用于各种场景,例如导入。
先前版本的风格指南和 Rustfmt 通常使用基于 “ASCII 字母顺序” 的方法。在 2024 版本中,这已更改为使用类似于版本排序的算法,该算法按字典顺序比较 Unicode 字符,并在 ASCII 数字比较中提供更好的结果。
例如,对于给定的(未排序)输入
use std::num::{NonZeroU32, NonZeroU16, NonZeroU8, NonZeroU64};
use std::io::{Write, Read, stdout, self};
在之前的版本中,rustfmt
会产生
use std::io::{self, stdout, Read, Write};
use std::num::{NonZeroU16, NonZeroU32, NonZeroU64, NonZeroU8};
在 2024 版本中,rustfmt
现在产生
use std::io::{self, Read, Write, stdout};
use std::num::{NonZeroU8, NonZeroU16, NonZeroU32, NonZeroU64};
迁移
可以通过使用 2024 版本运行 cargo fmt
或 rustfmt
来自动应用此更改。有关迁移以及风格版本如何工作的更多信息,请参阅风格版本章节。