Initial commit

This commit is contained in:
Kristofers Solo 2025-10-13 12:49:49 +03:00
commit cb8128addf
Signed by: kristoferssolo
GPG Key ID: 74FF8144483D82C8
12 changed files with 167 additions and 0 deletions

19
.gitignore vendored Normal file
View File

@ -0,0 +1,19 @@
#--------------------------------------------------#
# The following was generated with gitignore.nvim: #
#--------------------------------------------------#
# Gitignore for the following technologies: Rust
# Generated by Cargo
# will have compiled files and executables
debug/
target/
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock
# These are backup files generated by rustfmt
**/*.rs.bk
# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb

18
Cargo.toml Normal file
View File

@ -0,0 +1,18 @@
[workspace]
resolver = "2"
members = ["aes", "cipher-core", "cli", "des", "tui"]
[workspace.dependencies]
aes = { path = "aes" }
anyhow = "1"
cipher-core = { path = "cipher-core" }
claims = "0.8"
des = { path = "des" }
rand = "0.9"
rstest = "0.26"
thiserror = "2"
[workspace.lints.clippy]
pedantic = "warn"
nursery = "warn"
unwrap_used = "warn"

15
aes/Cargo.toml Normal file
View File

@ -0,0 +1,15 @@
[package]
name = "aes"
version = "0.1.0"
authors = ["Kristofers Solo <dev@kristofers.xyz>"]
edition = "2024"
[dependencies]
[dev-dependencies]
claims.workspace = true
rand.workspace = true
rstest.workspace = true
[lints]
workspace = true

14
aes/src/lib.rs Normal file
View File

@ -0,0 +1,14 @@
pub fn add(left: u64, right: u64) -> u64 {
left + right
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
let result = add(2, 2);
assert_eq!(result, 4);
}
}

12
cipher-core/Cargo.toml Normal file
View File

@ -0,0 +1,12 @@
[package]
name = "cipher-core"
version = "0.1.0"
authors = ["Kristofers Solo <dev@kristofers.xyz>"]
edition = "2024"
[dependencies]
anyhow.workspace = true
thiserror.workspace = true
[lints]
workspace = true

14
cipher-core/src/lib.rs Normal file
View File

@ -0,0 +1,14 @@
pub fn add(left: u64, right: u64) -> u64 {
left + right
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
let result = add(2, 2);
assert_eq!(result, 4);
}
}

20
cli/Cargo.toml Normal file
View File

@ -0,0 +1,20 @@
[package]
name = "cli"
version = "0.1.0"
authors = ["Kristofers Solo <dev@kristofers.xyz>"]
edition = "2024"
[dependencies]
aes = { workspace = true, optional = true }
anyhow.workspace = true
clap = { version = "4.5", features = ["derive"] }
des = { workspace = true, optional = true }
thiserror.workspace = true
[features]
default = ["des", "aes"]
des = ["dep:des"]
aes = ["dep:aes"]
[lints]
workspace = true

3
cli/src/main.rs Normal file
View File

@ -0,0 +1,3 @@
fn main() {
println!("Hello, world!");
}

15
des/Cargo.toml Normal file
View File

@ -0,0 +1,15 @@
[package]
name = "des"
version = "0.1.0"
authors = ["Kristofers Solo <dev@kristofers.xyz>"]
edition = "2024"
[dependencies]
[dev-dependencies]
claims.workspace = true
rand.workspace = true
rstest.workspace = true
[lints]
workspace = true

14
des/src/lib.rs Normal file
View File

@ -0,0 +1,14 @@
pub fn add(left: u64, right: u64) -> u64 {
left + right
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
let result = add(2, 2);
assert_eq!(result, 4);
}
}

20
tui/Cargo.toml Normal file
View File

@ -0,0 +1,20 @@
[package]
name = "tui"
version = "0.1.0"
authors = ["Kristofers Solo <dev@kristofers.xyz>"]
edition = "2024"
[dependencies]
aes = { workspace = true, optional = true }
anyhow.workspace = true
des = { workspace = true, optional = true }
ratatui = "0.29"
thiserror.workspace = true
[features]
default = ["des", "aes"]
des = ["dep:des"]
aes = ["dep:aes"]
[lints]
workspace = true

3
tui/src/main.rs Normal file
View File

@ -0,0 +1,3 @@
fn main() {
println!("Hello, world!");
}