1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#![doc = include_str!("../README.md")]

use biometrics::Collector;

use rpc_pb::sd::Host;

mod buffers;
mod channel;
mod client;
mod poll;
mod resolve;
mod server;

pub mod builtins;

pub use client::{new_client, ClientOptions};
pub use resolve::StringResolver;
pub use server::{Server, ServerOptions, ServiceRegistry};

//////////////////////////////////////////// biometrics ////////////////////////////////////////////

/// Register the biometrics for this crate.
pub fn register_biometrics(collector: &mut Collector) {
    client::register_biometrics(collector);
    channel::register_biometrics(collector);
    server::register_biometrics(collector);
    poll::register_biometrics(collector);
}

///////////////////////////////////////////// Resolver /////////////////////////////////////////////

/// A trait for resolving hosts.
// TODO(rescrv):  Dedupe with rpc_pb.
pub trait Resolver {
    /// Resolve one Host.
    fn resolve(&mut self) -> Result<Host, rpc_pb::Error>;
}