rsiot/components_config/master_device/
request_response_bound.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use std::fmt::Debug;

use super::AddressBound;

/// Ограничения для структур запросов и ответов
///
/// На структурах необходимо реализовать:
///
/// ```rust
/// #[derive(Clone, Debug)]
/// ```
pub trait RequestResponseBound<TAddress>
where
    Self: Clone + Debug + Send + Sync,
    TAddress: AddressBound,
{
    /// Адрес устройства
    fn address(&self) -> TAddress;

    /// Задать адрес устройства
    fn set_address(&mut self, address: TAddress);
}