Skip to main content

microcad_lang_base/src_ref/
line_col.rs

1// Copyright © 2024-2026 The µcad authors <info@microcad.xyz>
2// SPDX-License-Identifier: AGPL-3.0-or-later
3
4use serde::Serialize;
5
6/// Line and column within a source code file
7#[derive(Clone, Copy, Debug, Default, Serialize)]
8#[repr(C)]
9pub struct LineCol {
10    /// Line number (0..)
11    pub line: u32,
12    /// Column number (1..)
13    pub col: u32,
14}
15
16impl std::fmt::Display for LineCol {
17    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
18        write!(f, "{}:{}", self.line + 1, self.col)
19    }
20}