mirror of
https://github.com/Egonex-AI/Understand-Anything.git
synced 2026-06-22 10:58:03 +08:00
Replace the TypeScript/JavaScript-biased analysis pipeline with a truly language-agnostic system. The core architecture was already language-neutral (graph schema, dashboard, search) — the bias lived in agent prompts, tree-sitter plugin, and language-lesson system. Core changes: - LanguageConfig + FrameworkConfig types with Zod validation - LanguageRegistry (12 languages) and FrameworkRegistry (10 frameworks) - Config-driven TreeSitterPlugin replacing hardcoded TS/JS grammars - PluginRegistry now delegates to LanguageRegistry for extension mapping - Language-lesson system uses config for display names and concepts Prompt system: - SKILL.md generalized: dynamic injection of language snippets and framework addendums instead of hardcoded if/else conditionals - 12 language prompt snippets (languages/*.md) with concepts, patterns, frameworks per language - 10 framework addendums (frameworks/*.md) with canonical file roles, edge patterns, architectural layers — Django/FastAPI/Flask preserved and split, plus React/Next.js/Express/Vue/Spring/Rails/Gin added - Extended entry points, directory patterns, and test patterns across all 12 language ecosystems in base prompts
2.4 KiB
2.4 KiB
Rust Language Prompt Snippet
Key Concepts
- Ownership and Borrowing: Each value has one owner; references borrow without taking ownership
- Lifetimes: Annotations (
'a) ensuring references remain valid for their required duration - Traits and Trait Objects: Shared behavior definitions;
dyn Traitfor dynamic dispatch - Pattern Matching: Exhaustive
matchexpressions deconstructing enums, structs, and tuples - Enums with Data: Algebraic data types — each variant can carry different associated data
- Result/Option Error Handling:
Result<T, E>for fallible ops;Option<T>for nullable values - Macros: Declarative (
macro_rules!) and procedural (derive, attribute, function-like) code generation - Async/Await with Tokio: Zero-cost async using
Futuretrait and runtime executors - Unsafe Blocks: Opt-in blocks for raw pointer dereferencing, FFI, and bypassing borrow checker
- Generics with Trait Bounds:
<T: Clone + Send>constraining generic parameters - Closures and Fn Traits:
Fn,FnMut,FnOncedetermine how closures capture environment
Import Patterns
use crate::module::Item— import from current crateuse std::collections::HashMap— import from standard libraryuse super::*— import everything from parent modulemod module_name— declare a submodule (loads from file)
File Patterns
mod.rs— module barrel file (older convention) ormodule_name.rs(2018+ edition)lib.rs— library crate root defining the public APImain.rs— binary crate entry pointCargo.toml— project manifest with dependencies and metadatabuild.rs— build script executed before compilation
Common Frameworks
- Actix-web — Actor-based, high-performance web framework
- Axum — Ergonomic web framework built on Tower and Hyper
- Rocket — Type-safe web framework with declarative routing
- Diesel — Safe, composable ORM and query builder
- Tokio — Async runtime providing I/O, timers, and task scheduling
Example Language Notes
Takes
&selfborrow to read state without transferring ownership; returnsResult<T, Error>for explicit error propagation. The?operator propagates errors up the call stack concisely, replacing verbose match blocks.The module system maps to the filesystem:
mod handlers;loads eitherhandlers.rsorhandlers/mod.rs, establishing the module tree at compile time.