MCPcopy Create free account
hub / github.com/Dstack-TEE/dstack / ensure_enum_generated

Method ensure_enum_generated

ra-rpc/src/openapi.rs:779–802  ·  view source on GitHub ↗
(&mut self, name: &str)

Source from the content-addressed store, hash-verified

777 }
778
779 fn ensure_enum_generated(&mut self, name: &str) -> Result<()> {
780 if self.generated.contains_key(&schema_key(name)) {
781 return Ok(());
782 }
783 let descriptor = self
784 .registry
785 .enumeration(name)
786 .ok_or_else(|| anyhow!("enum {} not found", name))?;
787 let mut variants = Vec::new();
788 for value in &descriptor.descriptor.value {
789 if let Some(name) = &value.name {
790 variants.push(Value::String(name.clone()));
791 }
792 }
793 let mut schema = Map::new();
794 schema.insert("type".into(), Value::String("string".into()));
795 schema.insert("enum".into(), Value::Array(variants));
796 if let Some(doc) = &descriptor.description {
797 schema.insert("description".into(), Value::String(doc.clone()));
798 }
799 self.generated
800 .insert(schema_key(name), Value::Object(schema));
801 Ok(())
802 }
803
804 fn field_schema(&mut self, field: &FieldDescriptorProto) -> Result<Value> {
805 if matches!(field_type(field), FieldType::Message)

Callers 1

schema_refMethod · 0.80

Calls 3

schema_keyFunction · 0.85
enumerationMethod · 0.80
cloneMethod · 0.80

Tested by

no test coverage detected