mirror of
https://github.com/Noratrieb/cargo-minimize.git
synced 2026-01-14 16:35:01 +01:00
41 lines
931 B
Rust
41 lines
931 B
Rust
use syn::{parse_quote, visit_mut::VisitMut, Visibility};
|
|
|
|
use crate::processor::{ProcessChecker, Processor};
|
|
|
|
struct Visitor {
|
|
pub_crate: Visibility,
|
|
has_made_change: bool,
|
|
}
|
|
|
|
impl Visitor {
|
|
fn new() -> Self {
|
|
Self {
|
|
has_made_change: false,
|
|
pub_crate: parse_quote! { pub(crate) },
|
|
}
|
|
}
|
|
}
|
|
|
|
impl VisitMut for Visitor {
|
|
fn visit_visibility_mut(&mut self, vis: &mut Visibility) {
|
|
if let Visibility::Public(_) = vis {
|
|
self.has_made_change = true;
|
|
*vis = self.pub_crate.clone();
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Default)]
|
|
pub struct Privatize {}
|
|
|
|
impl Processor for Privatize {
|
|
fn process_file(&mut self, krate: &mut syn::File, _: &mut ProcessChecker) -> bool {
|
|
let mut visitor = Visitor::new();
|
|
visitor.visit_file_mut(krate);
|
|
visitor.has_made_change
|
|
}
|
|
|
|
fn name(&self) -> &'static str {
|
|
"privatize"
|
|
}
|
|
}
|