rustdv_sim/handle/
real.rs1use rustdv_gpi as gpi;
4
5use crate::{
6 handle::{HandleBase, ValueError},
7 phase,
8};
9
10#[derive(Copy, Clone)]
12pub struct RealHandle {
13 pub(super) raw: gpi::RealHandle,
14}
15
16impl From<gpi::RealHandle> for RealHandle {
17 fn from(raw: gpi::RealHandle) -> Self {
18 RealHandle { raw }
19 }
20}
21
22impl HandleBase for RealHandle {
23 fn name(&self) -> String {
24 self.raw.name()
25 }
26
27 fn full_name(&self) -> String {
28 self.raw.full_name()
29 }
30}
31
32impl RealHandle {
33 pub fn get(&self) -> Result<f64, ValueError> {
34 self.raw.get()
35 }
36 pub fn set(&self, value: f64) {
38 phase::schedule(self.raw, phase::WriteVal::Real(value));
39 }
40 pub fn set_now(&self, value: f64) {
41 phase::deny_write_in_read_only(self.raw);
42 self.raw.set_now(value);
43 }
44}