move_syn/vis.rs
1use crate::Item;
2
3/// Visibility options of a Move [`Item`].
4#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
5pub enum Visibility {
6 /// `public`
7 Public,
8 /// `public(package)`
9 Package,
10 /// No visibility modifier
11 Private,
12}
13
14impl Item {
15 pub const fn visibility(&self) -> Visibility {
16 let Some(vis) = &self.vis else {
17 return Visibility::Private;
18 };
19 if vis.modifier.is_some() {
20 Visibility::Package
21 } else {
22 Visibility::Public
23 }
24 }
25}