doip_sockets/
tcp.rs

1use doip_definitions::{
2    header::DoipVersion,
3    message::{
4        AliveCheckRequest, AliveCheckResponse, DiagnosticMessage, DiagnosticMessageAck,
5        DiagnosticMessageNack, GenericNack, RoutingActivationRequest, RoutingActivationResponse,
6    },
7};
8
9use crate::SocketConfig;
10
11mod tcp_split;
12mod tcp_stream;
13mod tcp_socket;
14mod tcp_listener;
15pub use crate::tcp::tcp_split::*;
16pub use crate::tcp::tcp_stream::*;
17pub use crate::tcp::tcp_socket::*;
18pub use crate::tcp::tcp_listener::*;
19
20/// Helper Trait which assists in applying LSP hints to the send and receive of
21/// sockets.
22pub trait DoipTcpPayload {}
23
24impl DoipTcpPayload for GenericNack {}
25impl DoipTcpPayload for RoutingActivationRequest {}
26impl DoipTcpPayload for RoutingActivationResponse {}
27impl DoipTcpPayload for AliveCheckRequest {}
28impl DoipTcpPayload for AliveCheckResponse {}
29impl DoipTcpPayload for DiagnosticMessage {}
30impl DoipTcpPayload for DiagnosticMessageAck {}
31impl DoipTcpPayload for DiagnosticMessageNack {}
32
33impl Default for SocketConfig {
34    fn default() -> Self {
35        Self {
36            protocol_version: DoipVersion::DefaultValue,
37        }
38    }
39}