MCPcopy Create free account
hub / github.com/archlinux/alpm / parse_clearable_value

Function parse_clearable_value

alpm-srcinfo/src/pkgbuild_bridge/package.rs:174–192  ·  view source on GitHub ↗

Ensures that a combination of [`Keyword`] and [`ClearableValue`] uses a [`ClearableValue::Single`] and parses the value as a specific type. # Errors Returns an error if - `value` cannot be parsed as a specific type, - or `value` is a [`ClearableValue::Array`].

(
    keyword: &Keyword,
    value: &'a ClearableValue,
    mut parser: P,
)

Source from the content-addressed store, hash-verified

172///
173/// Returns an error if
174///
175/// - `value` cannot be parsed as a specific type,
176/// - or `value` is a [`ClearableValue::Array`].
177fn parse_clearable_value<'a, O, P: Parser<&'a str, O, ErrMode<ContextError>>>(
178 keyword: &Keyword,
179 value: &'a ClearableValue,
180 mut parser: P,
181) -> Result<Override<O>, BridgeError> {
182 // Make sure we have no array
183 let value = ensure_single_clearable_value(keyword, value)?;
184
185 // If the value is `None`, it indicates a cleared value.
186 let Some(value) = value else {
187 return Ok(Override::Clear);
188 };
189
190 let parsed_value = parser.parse(value).map_err(|err| (keyword.clone(), err))?;
191
192 Ok(Override::Yes {
193 value: parsed_value,
194 })
195}

Callers 1

handle_packageFunction · 0.85

Calls 2

parseMethod · 0.80

Tested by

no test coverage detected