src/tools/disks/zfs.rs: simplify code

This commit is contained in:
Dietmar Maurer 2020-06-16 17:51:17 +02:00
parent 8ecd7c9c21
commit 902b2cc278

View File

@ -11,7 +11,7 @@ use nom::{
combinator::{map_res, all_consuming, recognize, opt}, combinator::{map_res, all_consuming, recognize, opt},
sequence::{preceded, tuple}, sequence::{preceded, tuple},
character::complete::{space1, digit1, char, line_ending}, character::complete::{space1, digit1, char, line_ending},
multi::{many0, many1}, multi::{many0},
}; };
use super::*; use super::*;
@ -185,10 +185,7 @@ fn parse_pool_status(i: &str) -> IResult<&str, ZFSPoolStatus> {
/// Note: This does not reveal any details on how the pool uses the devices, because /// Note: This does not reveal any details on how the pool uses the devices, because
/// the zpool list output format is not really defined... /// the zpool list output format is not really defined...
pub fn parse_zfs_list(i: &str) -> Result<Vec<ZFSPoolStatus>, Error> { pub fn parse_zfs_list(i: &str) -> Result<Vec<ZFSPoolStatus>, Error> {
if i.is_empty() { match all_consuming(many0(parse_pool_status))(i) {
return Ok(Vec::new());
}
match all_consuming(many1(parse_pool_status))(i) {
Err(nom::Err::Error(err)) | Err(nom::Err::Error(err)) |
Err(nom::Err::Failure(err)) => { Err(nom::Err::Failure(err)) => {
bail!("unable to parse zfs list output - {}", nom::error::convert_error(i, err)); bail!("unable to parse zfs list output - {}", nom::error::convert_error(i, err));