pub fn new_ice_gatherer(&self, opts: RTCIceGatherOptions) -> Result<RTCIceGatherer> {
        let mut validated_servers = vec![];
        if !opts.ice_servers.is_empty() {
            for server in &opts.ice_servers {
                let url = server.urls()?;
                validated_servers.extend(url);
            }
        }

        Ok(RTCIceGatherer::new(
            validated_servers,
            opts.ice_gather_policy,
            Arc::clone(&self.setting_engine),
        ))
    }
/// new_ice_gatherer creates a new ice gatherer.
/// This constructor is part of the ORTC API. It is not
/// meant to be used together with the basic WebRTC API.
new_ice_gatherer creates a new ice gatherer.
This constructor is part of the ORTC API. It is not
meant to be used together with the basic WebRTC API.
new_ice_gatherer creates a new ice gatherer . This constructor is part of the ORTC API . It is not meant to be used together with the basic WebRTC API .
pub fn new_ice_gatherer(&self, opts: RTCIceGatherOptions) -> Result<RTCIceGatherer> {
        let mut validated_servers = vec![];
        if !opts.ice_servers.is_empty() {
            for server in &opts.ice_servers {
                let url = server.urls()?;
                validated_servers.extend(url);
            }
        }
        Ok(RTCIceGatherer::new(
            validated_servers,
            opts.ice_gather_policy,
            Arc::clone(&self.setting_engine),
        ))
    }
pub fn new_ice_gatherer ( & self , opts : RTCIceGatherOptions ) -> Result < RTCIceGatherer > { let mut validated_servers = vec ! [ ] ; if ! opts . ice_servers . is_empty ( ) { for server in & opts . ice_servers { let url = server . urls ( ) ? ; validated_servers . extend ( url ) ; } } Ok ( RTCIceGatherer :: new ( validated_servers , opts . ice_gather_policy , Arc :: clone ( & self . setting_engine ) , ) ) }
new_ice_gatherer creates a new ice gatherer.
new_ice_gatherer creates a new ice gatherer .
&self
opts
RTCIceGatherOptions