MCPcopy Create free account
hub / github.com/dexwritescode/rust-mcp / generate_enum

Method generate_enum

src/server/handler.rs:382–416  ·  view source on GitHub ↗
(
        &self,
        Parameters(GenerateEnumParams {
            enum_name,
            variants,
            derives,
            file_path,
        }): Parameters<GenerateEnumParams>,
    )

Source from the content-addressed store, hash-verified

380
381 #[tool(description = "Generate an enum with specified variants and derives")]
382 async fn generate_enum(
383 &self,
384 Parameters(GenerateEnumParams {
385 enum_name,
386 variants,
387 derives,
388 file_path,
389 }): Parameters<GenerateEnumParams>,
390 ) -> Result<CallToolResult, McpError> {
391 let args = serde_json::json!({
392 "enum_name": enum_name,
393 "variants": variants,
394 "derives": derives,
395 "file_path": file_path
396 });
397
398 let mut analyzer = self.analyzer.lock().await;
399 match execute_tool("generate_enum", args, &mut analyzer).await {
400 Ok(result) => {
401 if let Some(content) = result.content.first() {
402 if let Some(text) = content.get("text") {
403 return Ok(CallToolResult::success(vec![Content::text(
404 text.as_str().unwrap_or("No result"),
405 )]));
406 }
407 }
408 Ok(CallToolResult::success(vec![Content::text(
409 "Enum generated successfully",
410 )]))
411 }
412 Err(e) => Ok(CallToolResult::success(vec![Content::text(format!(
413 "Error: {e}"
414 ))])),
415 }
416 }
417
418 #[tool(description = "Generate a trait implementation for a struct")]
419 async fn generate_trait_impl(

Callers

nothing calls this directly

Calls 1

execute_toolFunction · 0.85

Tested by

no test coverage detected