Autogenerate possible values for enums in reference documentation (#5137)

## Summary

For example:

![Screenshot 2024-07-16 at 7 44
10 PM](https://github.com/user-attachments/assets/73ce16ba-eb0e-43c4-a741-65a54637452f)

Closes https://github.com/astral-sh/uv/issues/5129.
This commit is contained in:
Charlie Marsh 2024-07-17 12:37:33 -04:00 committed by GitHub
parent 3e93255ac9
commit a191f84929
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 218 additions and 62 deletions

View file

@ -216,7 +216,18 @@ fn emit_field(output: &mut String, name: &str, field: &OptionField, parents: &[S
output.push_str("\n\n");
output.push_str(&format!("**Default value**: `{}`\n", field.default));
output.push('\n');
output.push_str(&format!("**Type**: `{}`\n", field.value_type));
if let Some(possible_values) = field
.possible_values
.as_ref()
.filter(|values| !values.is_empty())
{
output.push_str("**Possible values**:\n\n");
for value in possible_values {
output.push_str(format!("- {value}\n").as_str());
}
} else {
output.push_str(&format!("**Type**: `{}`\n", field.value_type));
}
output.push('\n');
output.push_str("**Example usage**:\n\n");
output.push_str(&format_tab(