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}