net_backend/
resolve.rs

1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4//! Resolver-related definitions for networking backends.
5
6use crate::Endpoint;
7use net_backend_resources::mac_address::MacAddress;
8use vm_resource::CanResolveTo;
9use vm_resource::kind::NetEndpointHandleKind;
10
11pub struct ResolveEndpointParams {
12    pub mac_address: MacAddress,
13}
14
15impl CanResolveTo<ResolvedEndpoint> for NetEndpointHandleKind {
16    type Input<'a> = ResolveEndpointParams;
17}
18
19pub struct ResolvedEndpoint(pub Box<dyn Endpoint>);
20
21impl<T: 'static + Endpoint> From<T> for ResolvedEndpoint {
22    fn from(value: T) -> Self {
23        Self(Box::new(value))
24    }
25}