Здравствуйте, Pzz, Вы писали:
Pzz>А что будет, если компонент А хочет одну версию некоторой библиотеки, а компонент Б — другую. И при этом мы получаем через компонент А из этой библиотеки какой-то еейный объект, а потом через компонент Б передаём этот объект другой версии той же библиотеки. А они не совместимы по своему внутреннему мироустройству...
Компилятор ругнется. Примерно так:
error[E0308]: mismatched types
--> ucat/src/interface.rs:28:5
|
28 | iface.ips.iter().find(|ipn| ipn.is_ipv4())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `ipnetwork::IpNetwork`, found a different enum `ipnetwork::IpNetwork`
|
= note: expected enum `std::option::Option<&ipnetwork::IpNetwork>` (enum `ipnetwork::IpNetwork`)
found enum `std::option::Option<&ipnetwork::IpNetwork>` (enum `ipnetwork::IpNetwork`)
= note: perhaps two different versions of crate `ipnetwork` are being used?
error: aborting due to previous error