Closed vvasuki closed 4 months ago
Would be nice to add a file named print_prakriyaa.rs with the following content to the vidyut-prakriya/examples folder
print_prakriyaa.rs
use vidyut_prakriya::{Prakriya, Vyakarana}; use vidyut_prakriya::args::*; fn build_dhaatu(upadesha: &str, gana: Gana, sanadi: Sanadi) -> Dhatu { let v = Vyakarana::new(); let dhatu = Dhatu::builder() .upadesha(upadesha) .gana(gana) .sanadi(&[sanadi]) .build() .unwrap(); let prakriyas = v.derive_dhatus(&dhatu); print_prakriyaa(prakriyas); dhatu } fn lat_kartari_1_1(dhatu: Dhatu) { let v: Vyakarana = Vyakarana::new(); let args: Tinanta = Tinanta::builder() .dhatu(dhatu) .lakara(Lakara::Lat) .prayoga(Prayoga::Kartari) .purusha(Purusha::Prathama) .vacana(Vacana::Eka) .build().unwrap(); let prakriyas = v.derive_tinantas(&args); print_prakriyaa(prakriyas); } fn print_prakriyaa(prakriyas: Vec<Prakriya>) { for p in prakriyas { println!("{}", p.text()); println!("---------------------------"); for step in p.history() { // let terms: Vec<_> = step.result().iter().map(|x| x.text()).filter(|x| !x.is_empty()).collect(); let terms: Vec<_> = step.result().iter().map(|x| x.to_string()).filter(|x| !x.is_empty()).collect(); let result = terms.join(" + "); println!("{:<10} | {}", step.rule().code(), result); } println!("---------------------------"); println!("\n"); } } fn main() { let dhatu: Dhatu = Dhatu::mula("BU", Gana::Bhvadi); lat_kartari_1_1(dhatu); let sannanta = build_dhaatu("jYA", Gana::Kryadi, Sanadi::san); lat_kartari_1_1(sannanta); }
Adding now.
Done, will push as part of the next update.
Pushing within the next 30 minutes or so.
Would be nice to add a file named
print_prakriyaa.rs
with the following content to the vidyut-prakriya/examples folder