linuxcnc_hal/hal_pin/
mod.rs1#[macro_use]
4mod macros;
5
6mod bidirectional_pin;
7mod hal_pin;
8mod input_pin;
9mod output_pin;
10mod pin_direction;
11
12pub use self::{
13 bidirectional_pin::BidirectionalPin, hal_pin::HalPin, input_pin::InputPin,
14 output_pin::OutputPin,
15};
16use crate::error::StorageError;
17
18pub trait PinRead: HalPin {
22 fn value(&self) -> Result<&<Self as HalPin>::Storage, StorageError> {
24 self.storage()
25 }
26}
27
28pub trait PinWrite: HalPin {
32 fn set_value(&self, value: <Self as HalPin>::Storage) -> Result<(), StorageError> {
34 Ok(*self.storage_mut()? = value)
35 }
36}