mock_server/
mock_server.rs1use std::convert::Infallible;
14use std::net::{IpAddr, Ipv4Addr, SocketAddr};
15
16use xvc_server::XvcServer;
17use xvc_server::server::{Config, Server};
18
19struct Loopback;
21
22impl XvcServer for Loopback {
23 type Err = Infallible;
24
25 fn set_tck(&self, period_ns: u32) -> Result<u32, Self::Err> {
26 Ok(period_ns)
27 }
28
29 fn shift(
30 &self,
31 _num_bits: u32,
32 _tms: &[u8],
33 tdi: &[u8],
34 tdo: &mut [u8],
35 ) -> Result<(), Self::Err> {
36 tdo.copy_from_slice(tdi);
37 Ok(())
38 }
39}
40
41#[tokio::main]
42async fn main() -> Result<(), Box<dyn std::error::Error>> {
43 let server = Server::new(Loopback, Config::default());
44 let addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 2542);
45 println!("XVC loopback server listening on {addr}");
46 server.listen(addr).await?;
47 Ok(())
48}