//! V4l list cameras feature
usev4l::context;usecrate::model::Camera;usestd::panic;/// List of attached cameras to the machine
/// Example
/// ```
/// use machine_info::Machine;
////// println!("{:?}", Machine::list_cameras());
////// ```
pubfnlist_cameras()->Vec<Camera>{letmut cameras =vec![];// I catch panic because the library uses unwrap internally and sometimes the device has no name
for dev incontext::enum_devices(){let name =panic::catch_unwind(||{
dev.name().unwrap()});let name =match name {Ok(name)=> name,Err(_)=>"Unknown".to_owned()};
cameras.push(Camera {
name,
path: dev.path().as_os_str().to_str().unwrap_or("Unknown").to_owned()})}
cameras
}