summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Pignolet <m@mpgn.dev>2025-05-05 20:23:43 +0400
committerMatthieu Pignolet <m@mpgn.dev>2025-05-05 20:23:43 +0400
commite32068c94a34e3382afa6a366bfc3f76b2bce5d7 (patch)
tree24123540204d5000633758d5a87aea24c27c4f99
parentfdfb65f920ebc5c72bd84397489ff3a79c017e77 (diff)
feat: add demo bin program
-rw-r--r--bin/aline-demo/.gitignore1
-rw-r--r--bin/aline-demo/Cargo.lock117
-rw-r--r--bin/aline-demo/Cargo.toml7
-rw-r--r--bin/aline-demo/src/main.rs102
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