diff options
| author | Matthieu Pignolet <m@mpgn.dev> | 2025-05-05 20:23:43 +0400 |
|---|---|---|
| committer | Matthieu Pignolet <m@mpgn.dev> | 2025-05-05 20:23:43 +0400 |
| commit | e32068c94a34e3382afa6a366bfc3f76b2bce5d7 (patch) | |
| tree | 24123540204d5000633758d5a87aea24c27c4f99 | |
| parent | fdfb65f920ebc5c72bd84397489ff3a79c017e77 (diff) | |
feat: add demo bin program
| -rw-r--r-- | bin/aline-demo/.gitignore | 1 | ||||
| -rw-r--r-- | bin/aline-demo/Cargo.lock | 117 | ||||
| -rw-r--r-- | bin/aline-demo/Cargo.toml | 7 | ||||
| -rw-r--r-- | bin/aline-demo/src/main.rs | 102 |
4 files changed, 227 insertions, 0 deletions
diff --git a/bin/aline-demo/.gitignore b/bin/aline-demo/.gitignore new file mode 100644 index 0000000..9f97022 --- /dev/null +++ b/bin/aline-demo/.gitignore @@ -0,0 +1 @@ +target/
\ No newline at end of file diff --git a/bin/aline-demo/Cargo.lock b/bin/aline-demo/Cargo.lock new file mode 100644 index 0000000..787cfb2 --- /dev/null +++ b/bin/aline-demo/Cargo.lock @@ -0,0 +1,117 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "aline" +version = "0.1.0" +dependencies = [ + "array2d", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "aline-demo" +version = "0.1.0" +dependencies = [ + "aline", +] + +[[package]] +name = "array2d" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b39cb2c1bf5a7c0dd097aa95ab859cf87dab5a4328900f5388942dc1889f74" + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "proc-macro2" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "syn" +version = "2.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" diff --git a/bin/aline-demo/Cargo.toml b/bin/aline-demo/Cargo.toml new file mode 100644 index 0000000..29aaab5 --- /dev/null +++ b/bin/aline-demo/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "aline-demo" +version = "0.1.0" +edition = "2024" + +[dependencies] +aline = { path = "../../" }
\ No newline at end of file diff --git a/bin/aline-demo/src/main.rs b/bin/aline-demo/src/main.rs new file mode 100644 index 0000000..619c0eb --- /dev/null +++ b/bin/aline-demo/src/main.rs @@ -0,0 +1,102 @@ +use aline; + +fn main() { + let mut data: Vec<(String, String)> = vec![]; + for line in COGNATE_DATE.split("\n") { + let mut pair = line.split(","); + + let a = pair.next().unwrap().to_string(); + let b = pair.next().unwrap().to_string(); + + data.push((a, b)); + } + + + for (a, b) in data.into_iter() { + let alignment = &aline::align(a.clone(), b.clone(), None)[0]; + + print!("{} ~ {} : ", a, b); + for alignment in alignment { + let alignment = &alignment; + print!("{} {}", alignment.0, alignment.1); + } + print!("\n"); + } +} + + +const COGNATE_DATE: &str = r"jo,ʒə +tu,ty +nosotros,nu +kjen,ki +ke,kwa +todos,tu +una,ən +dos,dø +tres,trwa +ombre,om +arbol,arbrə +pluma,plym +kabeθa,kap +boka,buʃ +pje,pje +koraθon,kœr +ber,vwar +benir,vənir +deθir,dir +pobre,povrə +ðis,dIzes +ðæt,das +wat,vas +nat,nixt +loŋ,laŋ +mæn,man +fleʃ,flajʃ +bləd,blyt +feðər,fEdər +hær,hAr +ir,Or +aj,awgə +nowz,nAzə +mawθ,munt +təŋ,tsuŋə +fut,fys +nij,knI +hænd,hant +hart,herts +livər,lEbər +ænd,ante +æt,ad +blow,flAre +ir,awris +ijt,edere +fiʃ,piʃkis +flow,fluere +staɾ,stella +ful,plenus +græs,gramen +hart,kordis +horn,korny +aj,ego +nij,genU +məðər,mAter +mawntən,mons +nejm,nomen +njuw,nowus +wən,unus +rawnd,rotundus +sow,suere +sit,sedere +θrij,tres +tuwθ,dentis +θin,tenwis +kinwawa,kenuaʔ +nina,nenah +napewa,napɛw +wapimini,wapemen +namesa,namɛʔs +okimawa,okemaw +ʃiʃipa,seʔsep +ahkohkwa,ahkɛh +pematesiweni,pematesewen +asenja,aʔsɛn";
\ No newline at end of file |
