-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathmod.rs
104 lines (97 loc) · 2.82 KB
/
mod.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
mod buffer_stop;
mod detector;
pub mod electrical_profiles;
mod electrification;
mod errors;
mod neutral_section;
pub mod operational_point;
mod railjson;
mod route;
mod signal;
mod speed_section;
mod switch;
mod switch_type;
pub mod track_section;
pub mod utils;
pub mod v2;
pub use buffer_stop::BufferStop;
pub use buffer_stop::BufferStopCache;
pub use detector::Detector;
pub use detector::DetectorCache;
use editoast_schemas::infra::ApplicableDirections;
use editoast_schemas::primitives::OSRDIdentified;
use editoast_schemas::primitives::ObjectType;
pub use electrification::Electrification;
pub use errors::InfraError;
pub use errors::InfraErrorType;
pub use neutral_section::NeutralSection;
pub use operational_point::OperationalPoint;
pub use operational_point::OperationalPointCache;
pub use operational_point::OperationalPointExtensions;
pub use operational_point::OperationalPointIdentifierExtension;
pub use operational_point::OperationalPointPart;
pub use railjson::RailJson;
pub use railjson::RAILJSON_VERSION;
pub use route::Route;
pub use signal::LogicalSignal;
pub use signal::Signal;
pub use signal::SignalCache;
pub use signal::SignalExtensions;
pub use signal::SignalSncfExtension;
pub use speed_section::Speed;
pub use speed_section::SpeedSection;
pub use switch::Switch;
pub use switch::SwitchCache;
pub use switch_type::builtin_node_types_list;
pub use switch_type::Crossing;
pub use switch_type::DoubleSlipSwitch;
pub use switch_type::Link;
pub use switch_type::PointSwitch;
pub use switch_type::SingleSlipSwitch;
pub use switch_type::SwitchType;
pub use track_section::TrackSection;
pub use track_section::TrackSectionCache;
cfg_if! {
if #[cfg(test)] {
pub use operational_point::OperationalPointPartCache;
pub use switch_type::SwitchPortConnection;
pub use track_section::{Curve, Slope};
pub use buffer_stop::BufferStopExtension;
}
}
use crate::infra_cache::operation;
use derivative::Derivative;
use serde::Deserialize;
use serde::Serialize;
use editoast_common::Identifier;
editoast_common::schemas! {
utils::schemas(),
editoast_schemas::schemas(),
operation::schemas(),
}
#[derive(Debug, Derivative, Clone, Deserialize, Serialize, PartialEq)]
#[serde(deny_unknown_fields)]
#[derivative(Default)]
pub struct ApplicableDirectionsTrackRange {
#[derivative(Default(value = r#""InvalidRef".into()"#))]
pub track: Identifier,
pub begin: f64,
#[derivative(Default(value = "100."))]
pub end: f64,
pub applicable_directions: ApplicableDirections,
}
impl ApplicableDirectionsTrackRange {
pub fn new<T: AsRef<str>>(
track: T,
begin: f64,
end: f64,
applicable_directions: ApplicableDirections,
) -> Self {
Self {
track: track.as_ref().into(),
begin,
end,
applicable_directions,
}
}
}