+/// Retrieve interface information and watch for changes, which will be delivered via callback.
+///
+/// If setting up the watch is successful, this returns a `WatchHandle` which must be kept for
+/// as long as the provided callback should operate.
+///
+/// The callback will fire once immediately with an initial interface list, and a diff as if
+/// there were originally no interfaces present.
+pub fn watch_interfaces<F: FnMut(Update) + Send + 'static>(callback: F) -> Result<WatchHandle, Error> {