如何稳定让Rustfmt跳过整个文件?排除不稳定Rust及外部配置
解决Rustfmt跳过整个文件的可行方案
既然你不想用不稳定Rust版本或者外部配置文件,那有个实用的小技巧能满足需求——把整个文件的代码封装到一个模块里,然后给这个模块加上#[rustfmt::skip]属性。这样Rustfmt就会跳过模块内的所有代码,完全符合你的要求。
举个普通模块文件的例子,假设你原本的代码是这样:
fn calculate(a: i32, b: i32) -> i32 { a + b } struct Point { x: f64, y: f64, }
可以改成这样:
#[rustfmt::skip] mod file_content { pub fn calculate(a: i32, b: i32) -> i32 { a + b } pub struct Point { x: f64, y: f64, } } // 通过重新导出保持原有对外接口不变 pub use file_content::*;
调整后,file_content模块里的所有代码都会被Rustfmt忽略,而pub use能保证外部调用这些项的方式和之前完全一致,不会影响代码的正常使用。
如果是main.rs或lib.rs这类根文件,也可以用类似思路:
#[rustfmt::skip] mod app_logic { pub fn run() { // 原来的main函数逻辑 } // 其他所有代码都放在这里 } fn main() { app_logic::run(); }
这个方法完全依赖文件内部的代码调整,不需要任何外部配置,也不用切换到不稳定Rust版本,完美避开了你不接受的方案。
内容的提问来源于stack exchange,提问作者Timmmm
相关产品推荐
相关产品推荐

