microcad_lang/syntax/
visibility.rs

1// Copyright © 2024-2025 The µcad authors <info@ucad.xyz>
2// SPDX-License-Identifier: AGPL-3.0-or-later
3
4//! Visibility of an entity.
5
6/// Visibility of an entity.
7///
8/// This is used to determine if an entity is public or private.
9/// By default, entities are private.
10#[derive(Copy, Clone, Debug, Default, PartialEq)]
11pub enum Visibility {
12    /// Private visibility
13    #[default]
14    Private,
15    /// Public visibility
16    Public,
17}
18
19impl std::fmt::Display for Visibility {
20    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
21        match self {
22            Visibility::Private => Ok(()),
23            Visibility::Public => write!(f, "pub "),
24        }
25    }
26}