wright 0.10.1

The wright programming language compiler and tooling.
Documentation
//! A node in the AST representing the visibility of a declaration.

use crate::parser::ast::metadata::AstNodeMeta;
use derive_more::Display;

/// The possible visibilities of a declaration in Wright.
#[derive(Clone, Copy, PartialEq, Eq, Debug, Hash, Display)]
pub enum VisibilityTy {
    /// Externally public.
    Public,
    /// Package private.
    Package,
    /// Module/file private. This is default.
    Private,
}

/// A visibility modifier in wright source.
#[derive(Clone, Debug)]
pub struct Visibility<'src> {
    /// Node metadata
    pub meta: AstNodeMeta<'src>,
    /// Which visibility is represented.
    pub variant: VisibilityTy,
}