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}