pedant_types/resolution/
unit.rs1use std::sync::Arc;
4
5use serde::{Deserialize, Serialize};
6
7use crate::Language;
8
9use super::id::ResolutionUnitId;
10
11#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
17#[serde(deny_unknown_fields)]
18pub struct ResolutionUnit {
19 id: ResolutionUnitId,
20 language: Language,
21 key: Arc<str>,
22 name: Arc<str>,
23}
24
25impl ResolutionUnit {
26 pub(crate) fn new(
27 id: ResolutionUnitId,
28 language: Language,
29 key: Arc<str>,
30 name: Arc<str>,
31 ) -> Self {
32 Self {
33 id,
34 language,
35 key,
36 name,
37 }
38 }
39
40 pub fn id(&self) -> ResolutionUnitId {
42 self.id
43 }
44
45 pub fn language(&self) -> Language {
47 self.language
48 }
49
50 pub fn key(&self) -> &str {
52 &self.key
53 }
54
55 pub fn name(&self) -> &str {
57 &self.name
58 }
59}