diff --git a/libs/rust/.gitignore b/libs/rust/.gitignore new file mode 100644 index 0000000..c41cc9e --- /dev/null +++ b/libs/rust/.gitignore @@ -0,0 +1 @@ +/target \ No newline at end of file diff --git a/libs/rust/Cargo.lock b/libs/rust/Cargo.lock new file mode 100644 index 0000000..b8d8dc2 --- /dev/null +++ b/libs/rust/Cargo.lock @@ -0,0 +1,65 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "dalet" +version = "1.0.0-pre0" +dependencies = [ + "serde", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "serde" +version = "1.0.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "syn" +version = "2.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" diff --git a/libs/rust/Cargo.toml b/libs/rust/Cargo.toml new file mode 100644 index 0000000..90b5678 --- /dev/null +++ b/libs/rust/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "dalet" +version = "1.0.0-pre0" +edition = "2021" +authors = ["artegoser"] +license = "MIT" +description = "Dalet implementation in Rust" +repository = "https://github.com/txtdot/dalet" +homepage = "https://github.com/TxtDot/dalet/tree/main/libs/rust" +readme = "./README.md" +keywords = ["dalet"] +categories = ["compression", "compilers", "encoding"] + +[dependencies] +serde = { version = "1.0", features = ["derive"] } + +[features] +default = ["types"] +types = [] diff --git a/libs/rust/readme.md b/libs/rust/readme.md new file mode 100644 index 0000000..7e82684 --- /dev/null +++ b/libs/rust/readme.md @@ -0,0 +1 @@ +# Dalet-rs diff --git a/libs/rust/src/lib.rs b/libs/rust/src/lib.rs new file mode 100644 index 0000000..c627ab6 --- /dev/null +++ b/libs/rust/src/lib.rs @@ -0,0 +1,4 @@ +mod types; + +#[cfg(feature = "types")] +pub use types::*; diff --git a/libs/rust/src/main.rs b/libs/rust/src/main.rs new file mode 100644 index 0000000..933c457 --- /dev/null +++ b/libs/rust/src/main.rs @@ -0,0 +1,6 @@ +use dalet::{Argument, Body, Tag}; + +fn main() { + let _ = Tag::new(1, Body::Text("I am Heading".to_string()), Argument::Null); + println!("Hello, world!"); +} diff --git a/libs/rust/src/types.rs b/libs/rust/src/types.rs new file mode 100644 index 0000000..f2c2638 --- /dev/null +++ b/libs/rust/src/types.rs @@ -0,0 +1,28 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Debug)] +pub struct Tag { + id: i8, + body: Body, + argument: Argument, +} + +impl Tag { + pub fn new(id: i8, body: Body, argument: Argument) -> Tag { + Tag { id, body, argument } + } +} + +#[derive(Serialize, Deserialize, Debug)] +pub enum Body { + Text(String), + Tag(Box), + Null, +} + +#[derive(Serialize, Deserialize, Debug)] +pub enum Argument { + Text(String), + Number(i8), + Null, +} diff --git a/libs/typescript/package.json b/libs/typescript/package.json index 4c079b9..4a89ef5 100644 --- a/libs/typescript/package.json +++ b/libs/typescript/package.json @@ -1,7 +1,7 @@ { "name": "@txtdot/dalet", "version": "1.0.0-pre0", - "description": "Dalet realization in typescript", + "description": "Dalet implementation in typescript", "main": "dist/lib.js", "types": "dist/lib.d.ts", "files": [