use crateError;
use crateAddressFamilyFlags;
use crateProtocolFlags;
use crateSocketInfo;
use crate*;
/// Returns an iterator over sockets that match the provided filters.
///
/// # Examples
/// ```
/// use netsock::family::AddressFamilyFlags;
/// use netsock::iter_sockets;
/// use netsock::protocol::ProtocolFlags;
///
/// let af_flags = AddressFamilyFlags::IPV4 | AddressFamilyFlags::IPV6;
/// let proto_flags = ProtocolFlags::TCP | ProtocolFlags::UDP;
///
/// if let Ok(socket_iter) = iter_sockets(af_flags, proto_flags) {
/// for socket_info in socket_iter {
/// match socket_info {
/// Ok(info) => println!("Found socket: {:?}", info),
/// Err(e) => eprintln!("Error fetching socket info: {:?}", e),
/// }
/// }
/// }
/// ```