1#![allow(
2 clippy::collapsible_if,
3 clippy::derivable_impls,
4 clippy::field_reassign_with_default,
5 clippy::type_complexity
6)]
7
8pub mod device_support;
9pub mod records;
10pub mod snl;
11
12pub use records::epid::EpidRecord;
13pub use records::throttle::ThrottleRecord;
14pub use records::timestamp::TimestampRecord;
15
16pub const STD_DB_DIR: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/db");
18
19pub fn epid_record_factory() -> (&'static str, epics_base_rs::server::RecordFactory) {
21 ("epid", Box::new(|| Box::new(EpidRecord::default())))
22}
23
24pub fn throttle_record_factory() -> (&'static str, epics_base_rs::server::RecordFactory) {
26 ("throttle", Box::new(|| Box::new(ThrottleRecord::default())))
27}
28
29pub fn timestamp_record_factory() -> (&'static str, epics_base_rs::server::RecordFactory) {
31 (
32 "timestamp",
33 Box::new(|| Box::new(TimestampRecord::default())),
34 )
35}
36
37pub fn std_record_factories() -> Vec<(&'static str, epics_base_rs::server::RecordFactory)> {
39 vec![
40 epid_record_factory(),
41 throttle_record_factory(),
42 timestamp_record_factory(),
43 ]
44}
45
46pub fn register_std_record_types() {
49 for (name, factory) in std_record_factories() {
50 epics_base_rs::server::db_loader::register_record_type(name, factory);
51 }
52}