MCPcopy Index your code
hub / github.com/cloud-hypervisor/cloud-hypervisor / parse

Method parse

vhost_user_net/src/lib.rs:289–345  ·  view source on GitHub ↗
(backend: &str)

Source from the content-addressed store, hash-verified

287
288impl VhostUserNetBackendConfig {
289 pub fn parse(backend: &str) -> Result<Self> {
290 let mut parser = OptionParser::new();
291
292 parser
293 .add("tap")
294 .add("ip")
295 .add("host_mac")
296 .add("mask")
297 .add("mtu")
298 .add("queue_size")
299 .add("num_queues")
300 .add("socket")
301 .add("client");
302
303 parser.parse(backend).map_err(Error::FailedConfigParse)?;
304
305 let tap = parser.get("tap");
306 let ip = parser
307 .convert("ip")
308 .map_err(Error::FailedConfigParse)?
309 .unwrap_or_else(|| IpAddr::V4(Ipv4Addr::new(192, 168, 100, 1)));
310 let host_mac = parser
311 .convert("host_mac")
312 .map_err(Error::FailedConfigParse)?
313 .unwrap_or_else(MacAddr::local_random);
314 let mask = parser
315 .convert("mask")
316 .map_err(Error::FailedConfigParse)?
317 .unwrap_or_else(|| IpAddr::V4(Ipv4Addr::new(255, 255, 255, 0)));
318 let mtu = parser.convert("mtu").map_err(Error::FailedConfigParse)?;
319 let queue_size = parser
320 .convert("queue_size")
321 .map_err(Error::FailedConfigParse)?
322 .unwrap_or(256);
323 let num_queues = parser
324 .convert("num_queues")
325 .map_err(Error::FailedConfigParse)?
326 .unwrap_or(2);
327 let socket = parser.get("socket").ok_or(Error::SocketParameterMissing)?;
328 let client = parser
329 .convert::<Toggle>("client")
330 .map_err(Error::FailedConfigParse)?
331 .unwrap_or(Toggle(false))
332 .0;
333
334 Ok(VhostUserNetBackendConfig {
335 ip,
336 host_mac,
337 mask,
338 mtu,
339 socket,
340 num_queues,
341 queue_size,
342 tap,
343 client,
344 })
345 }
346}

Callers

nothing calls this directly

Calls 5

newFunction · 0.85
ToggleClass · 0.85
addMethod · 0.80
convertMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected