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}