pibtool_stock_data/pib_info.rs
1// SPDX-FileCopyrightText: Politik im Blick developers
2// SPDX-FileCopyrightText: Wolfgang Silbermayr <wolfgang@silbermayr.at>
3//
4// SPDX-License-Identifier: AGPL-3.0-or-later OR EUPL-1.2
5
6use serde::{Deserialize, Serialize};
7
8use super::{AdministrativeUnitKind, DataSource, Identifiers};
9
10/// The information of an administrative unit stored in a file to be read by `pibtool`.
11#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
12pub struct PibInfo {
13 /// The name of the administrative unit.
14 pub name: String,
15
16 /// The kind of administrative unit.
17 pub kind: AdministrativeUnitKind,
18
19 /// A list of known data sources for the administrative unit.
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub data_sources: Option<Vec<DataSource>>,
22
23 /// Extra notes, if required.
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub note: Option<String>,
26
27 /// A set of known identifiers for the administrative unit.
28 pub identifiers: Identifiers,
29}