1use anyhow::Result;
2use serde_json::Value;
3
4pub fn make_file_finder_include_ignored_an_enum(value: &mut Value) -> Result<()> {
5 let Some(file_finder) = value.get_mut("file_finder") else {
6 return Ok(());
7 };
8
9 let Some(file_finder_obj) = file_finder.as_object_mut() else {
10 anyhow::bail!("Expected file_finder to be an object");
11 };
12
13 let Some(include_ignored) = file_finder_obj.get_mut("include_ignored") else {
14 return Ok(());
15 };
16 *include_ignored = match include_ignored {
17 Value::Bool(true) => Value::String("all".to_string()),
18 Value::Bool(false) => Value::String("indexed".to_string()),
19 Value::Null => Value::String("smart".to_string()),
20 _ => anyhow::bail!("Expected include_ignored to be a boolean or null"),
21 };
22 Ok(())
23}