Crates.io | vidyut-chandas |
lib.rs | vidyut-chandas |
version | 0.1.0 |
source | src |
created_at | 2024-05-30 05:16:47.318478 |
updated_at | 2024-05-30 05:16:47.318478 |
description | A Sanskrit metrical classifier |
homepage | https://github.com/ambuda-org/vidyut |
repository | https://github.com/ambuda-org/vidyut |
max_upload_size | |
id | 1256526 |
size | 45,472 |
vidyut-chandas
A Sanskrit metrical classifier
vidyut-chandas
is an experimental classifier for Sanskrit meters.
This crate is under active development as part of the Ambuda project. If you enjoy our work and wish to contribute to it, we encourage you to join our Discord server, where you can meet other Sanskrit programmers and enthusiasts.
An online demo is available here.
Sanskrit poetry uses a variety of meters, which specify the syllable patterns
that a verse must follow. vidyut-chandas
aims to provide a simple API for
identifying the meter that a given verse uses.
vidyut-chandas
is experimental code and follows in the footsteps of great
projects like sanskritmetres and Skrutable.
(This API is unstable.)
We recommend using vidyut-chandas
through our Chandas
API:
use vidyut_chandas::{Chandas, MatchType, Vrtta};
let vrttas: Vec<Vrtta> = vec![
"vasantatilakA\tvrtta\tGGLGLLLGLLGLGG".try_into().unwrap(),
"mandAkrAntA\tvrtta\tGGGGLLLLLGGLGGLGG".try_into().unwrap(),
"puzpitAgrA\tvrtta\tLLLLLLGLGLGG/LLLLGLLGLGLGG".try_into().unwrap(),
"udgatA\tvrtta\tLLGLGLLLGL/LLLLLGLGLG/GLLLLLLGLLG/LLGLGLLLGLGLG".try_into().unwrap()
];
let chandas = Chandas::new(vrttas);
let result = chandas.classify("mAtaH samastajagatAM maDukEwaBAreH");
assert_eq!(result.vrtta().as_ref().unwrap().name(), "vasantatilakA");
assert_eq!(result.match_type(), MatchType::Pada);