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}