prosaic-vocab-code 1.0.1

Code-analysis vocabulary module for the prosaic crate
Documentation

prosaic-vocab-code

Code-analysis vocabulary templates for Prosaic.

This crate registers ready-made templates for common code change events, with English and Spanish template sets exposed through matching registration functions.

Install

[dependencies]
prosaic-core = "1.0.1"
prosaic-grammar-en = "1.0.1"
prosaic-vocab-code = "1.0.1"

Template Keys

  • code.renamed
  • code.deleted
  • code.added
  • code.modified
  • code.moved
  • code.signature_changed

Each key has multiple salience variants so the engine can render terse low impact notes or more detailed high impact prose from the same event shape.

Example

use prosaic_core::{Context, Engine, Session, Value};
use prosaic_grammar_en::English;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut engine = Engine::new(English::new());
    prosaic_vocab_code::register(&mut engine)?;

    let mut ctx = Context::new();
    ctx.insert("entity_type", Value::String("class".into()));
    ctx.insert("old_name", Value::String("UserService".into()));
    ctx.insert("new_name", Value::String("AccountService".into()));
    ctx.insert("consumer_count", Value::Number(3));

    let mut session = Session::new();
    let text = engine.render(&mut session, "code.renamed", &ctx)?;
    println!("{text}");
    Ok(())
}

Use prosaic_vocab_code::register_es with prosaic-grammar-es for Spanish surface text.

License

MIT OR Apache-2.0