AS
Size: a a a
AS
AS
f
AS
f
AS
AS
АГ
AS
f
f
АГ
f
АГ
struct ServerConfig {
key_pair: Keypair,
base_dir: PathBuf,
envs: Vec<String>,
}
trait DHTConfig {
fn peer_id(&self) -> PeerId;
fn work_dir(&self) -> PathBuf;
}
trait VMConfig {
fn envs(&self) -> Vec<String>;
fn work_dir(&self) -> PathBuf;
}
impl DHTConfig for ServerConfig {
fn peer_id(&self) -> PeerId { key_pair.public().to_peer_id }
fn work_dir(&self) -> PathBuf { base_dir.join("something") }
}f
АГ
f
impl DhtConfig вместо DhtConfigАГ
fn new<C: DHTConfig>(config: C)->DHTWhatever { <use DHTConfig trait> }f
fn new(config: impl DhtConfig)АГ
fn new(config: impl DhtConfig)