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

Method schema_ref

ra-rpc/src/openapi.rs:702–729  ·  view source on GitHub ↗
(&mut self, type_name: &str)

Source from the content-addressed store, hash-verified

700 }
701
702 fn schema_ref(&mut self, type_name: &str) -> Result<Value> {
703 let normalized = normalize_type_name(type_name);
704 if let Some(schema) = builtin_type_schema(&normalized) {
705 return Ok(schema);
706 }
707
708 if let Some(message) = self.registry.message(&normalized) {
709 if message.is_map_entry {
710 bail!(
711 "map entry type {} cannot be referenced directly",
712 normalized
713 );
714 }
715 self.ensure_message_generated(&normalized)?;
716 return Ok(json!({
717 "$ref": format!("#/components/schemas/{}", schema_key(&normalized))
718 }));
719 }
720
721 if self.registry.enumeration(&normalized).is_some() {
722 self.ensure_enum_generated(&normalized)?;
723 return Ok(json!({
724 "$ref": format!("#/components/schemas/{}", schema_key(&normalized))
725 }));
726 }
727
728 bail!("unknown type referenced in proto: {}", normalized);
729 }
730
731 fn ensure_message_generated(&mut self, name: &str) -> Result<()> {
732 if self.generated.contains_key(&schema_key(name)) {

Callers 2

build_operationFunction · 0.80
scalar_schemaMethod · 0.80

Calls 6

normalize_type_nameFunction · 0.85
builtin_type_schemaFunction · 0.85
messageMethod · 0.80
enumerationMethod · 0.80
ensure_enum_generatedMethod · 0.80

Tested by

no test coverage detected