Compare commits

..

No commits in common. "master" and "demonstration-1" have entirely different histories.

108 changed files with 6657 additions and 560 deletions

View file

@ -0,0 +1,50 @@
name: cargo devel CI
on:
push:
branches:
- '**'
# - '!master'
jobs:
format:
name: cargo CI
permissions:
# Give the default GITHUB_TOKEN write permission to commit and push the
# added or changed files to the repository.
contents: write
steps:
- name: get repo
uses: actions/checkout@v4
- name: install rust
uses: https://github.com/dtolnay/rust-toolchain@stable
- name: install additional rust things
run: |
rustup component add rustfmt
rustup component add clippy
- name: install additional dependencies
run: |
apt update -y
apt install libgtk-3-dev librust-atk-dev -y
- name: config custom registry
run: |
mkdir -p ~/.cargo/
echo "" > ~/.cargo/config.toml
echo "[registry]" >> ~/.cargo/config.toml
echo 'cscherr = "cscherr"' >> ~/.cargo/config.toml
echo '[registries.cscherr]' >> ~/.cargo/config.toml
echo 'index = "https://git.cscherr.de/PlexSheep/_cargo-index.git"' >> ~/.cargo/config.toml
cat ~/.cargo/config.toml
- name: cargo clippy check
run: cargo clippy --all-features --all-targets --workspace
- name: cargo clippy fix
run: cargo clippy --fix --all-features --all-targets --workspace
- name: cargo fmt
run: cargo fmt --all
- name: cargo test
run: cargo test --all-features --all-targets --workspace && cargo test --all-features --workspace --doc
- name: commit back to repository
uses: https://github.com/stefanzweifel/git-auto-commit-action@v5
with:
# Optional. Commit message for the created commit.
# Defaults to "Apply automatic changes"
commit_message: automatic cargo CI changes

View file

@ -1,51 +1,51 @@
name: Rust CI
name: cargo devel CI
on:
push:
branches:
- '**'
env:
CARGO_TERM_COLOR: always
# - '!master'
jobs:
test:
name: Test Suite
CI:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Run tests
run: ./cargo.sh test --all-features --workspace --all-targets
clippy:
name: cargo CI
permissions:
# Give the default GITHUB_TOKEN write permission to commit and push the
# added or changed files to the repository.
contents: write
name: Clippy
runs-on: ubuntu-latest
steps:
- name: Checkout repository
- name: get repo
uses: actions/checkout@v4
- name: Install Rust toolchain
- name: install rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy,rustfmt
- uses: Swatinem/rust-cache@v2
- name: Clippy check and fix
run: cargo clippy --fix --all-targets --all-features --workspace
- name: Check formatting
- name: install additional rust things
run: |
rustup component add rustfmt
rustup component add clippy
- name: install additional dependencies
run: |
apt update -y
apt install libgtk-3-dev librust-atk-dev -y
- name: config custom registry
run: |
mkdir -p ~/.cargo/
echo "" > ~/.cargo/config.toml
echo "[registry]" >> ~/.cargo/config.toml
echo 'cscherr = "cscherr"' >> ~/.cargo/config.toml
echo '[registries.cscherr]' >> ~/.cargo/config.toml
echo 'index = "https://git.cscherr.de/PlexSheep/_cargo-index.git"' >> ~/.cargo/config.toml
cat ~/.cargo/config.toml
- name: cargo clippy check
run: cargo clippy --all-features --all-targets --workspace
- name: cargo clippy fix
run: cargo clippy --fix --all-features --all-targets --workspace
- name: cargo fmt
run: cargo fmt --all
- name: cargo test
run: cargo test --all-features --all-targets --workspace && cargo test --all-features --workspace --doc
- name: commit back to repository
uses: stefanzweifel/git-auto-commit-action@v5
with:
# These defaults somehow do not work for me, so I've set them
# explicitly
# The big number is the userid of the bot
commit_user_name: github-actions[bot]
commit_user_email: 41898282+github-actions[bot]@users.noreply.github.com
commit_author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> # defaults to "username <username@users.noreply.github.com>", where "username" belongs to the author of the commit that triggered the run
commit_message: "ci: automatic Rust CI changes"
# Optional. Commit message for the created commit.
# Defaults to "Apply automatic changes"
commit_message: automatic cargo CI changes

3
.gitignore vendored
View file

@ -1,4 +1,3 @@
Cargo.lock
/target
members/c-bindings/lib/CMakeCache.txt
members/c-bindings/lib/cmake_install.cmake
@ -7,5 +6,3 @@ members/c-bindings/lib/libtest.so.1
members/c-bindings/lib/libtest.so.1.0.1
members/sqlite-demo/data/cats.db
members/diesel-demo/data/dieseldemo.db
members/graph/src/output
Cargo.lock

6126
Cargo.lock generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,45 +1,80 @@
[workspace]
members = [
".",
"crates/criterion-demo",
"crates/cucumber-demo",
"crates/panic-calm",
"crates/pest-demo",
"crates/revsqrt",
"crates/serde-json-demo",
"crates/shortc",
"crates/socker",
"crates/tokryon",
"crates/tokio-send-sync",
"crates/matchmatchmatch",
"crates/future_stream",
"crates/mpsc",
"crates/mpsc-full",
"crates/echargs",
"crates/claptest",
"crates/rest",
"crates/rest-queued",
"crates/fluent-demo",
"crates/onlytoken",
"crates/sqlite-demo",
"crates/diesel-demo",
"crates/ptlog",
"crates/hello-world",
"crates/statusline",
"crates/clap-repl-demo",
"crates/arithmetics",
"crates/egui-demo",
"crates/rfd-demo",
"crates/iter-prod",
"crates/tpdemo",
"crates/graph",
"crates/sdl-idiot",
".",
"members/criterion-demo",
"members/cucumber-demo",
"members/panic-calm",
"members/pest-demo",
"members/revsqrt",
"members/serde-json-demo",
"members/shortc",
"members/socker",
"members/tokryon",
"members/tokio-send-sync",
"members/matchmatchmatch",
"members/future_stream",
"members/mpsc",
"members/mpsc-full",
"members/echargs",
"members/claptest",
"members/rest",
"members/rest-queued",
"members/fluent-demo",
"members/onlytoken",
"members/sqlite-demo",
"members/diesel-demo",
"members/ptlog",
"members/hello-world",
"members/statusline",
"members/clap-repl-demo",
"members/arithmetics",
"members/egui-demo",
"members/rfd-demo",
]
default-members = [
".",
"members/rfd-demo",
"members/egui-demo",
"members/arithmetics",
"members/statusline",
"members/ptlog",
"members/diesel-demo",
"members/onlytoken",
"members/fluent-demo",
"members/echargs",
"members/revsqrt",
"members/claptest",
"members/mpsc",
"members/mpsc-full",
"members/criterion-demo",
"members/shortc",
"members/pest-demo",
"members/serde-json-demo",
"members/cucumber-demo",
"members/panic-calm",
"members/socker",
"members/tokryon",
"members/tokio-send-sync",
"members/matchmatchmatch",
"members/future_stream",
"members/rest",
"members/rest-queued",
"members/sqlite-demo",
]
default-members = ["."]
[workspace.dependencies]
anyhow = "1.0.79"
thiserror = "1.0.56"
tokio = { version = "1.35.1", features = [
"net",
"rt",
"macros",
"rt-multi-thread",
"io-util",
"time",
"sync",
] }
futures = { version = "0.3.30", features = ["executor"] }
serde = { version = "1.0.171", features = ["derive"] }
serde_json = "1.0.102"
libpt = { version = "0.5.1", features = ["full"] }

View file

@ -7,14 +7,6 @@ dependencies.
Completeness is not a goal of this project.
## Compiling
Please prefer the use of the [cargo.sh](./cargo.sh) script.
```bash
$ ./cargo.sh CRATE CARGO_COMMANDS...
```
## Highlighted demo crates
**Basics**
@ -48,17 +40,9 @@ $ ./cargo.sh CRATE CARGO_COMMANDS...
## Warnings
* Some of the crates, especially those related to GUIs, may not work in WSL
* Some of the crates, especially those related to GUIs, may not work in WSL
environments.
## Additional dependencies
If you need to compile the whole workspace:
```bash
apt install libgtk-3-dev librust-atk-dev -y
```
## Rust unsafe
Unsafe rust offers many possibilities otherwise locked from rust, which might

View file

@ -1,6 +0,0 @@
#!/bin/bash
ROOT=$PWD
CARGO_TARGET_DIR=$PWD/target
cargo --config "target-dir=\"$ROOT/target\"" $@

View file

@ -1,8 +0,0 @@
#!/bin/bash
CRATE="$1"
ROOT=$PWD
CARGO_TARGET_DIR=$PWD/target
echo "using crate $CRATE"
cargo --config "target-dir=\"$ROOT/target\"" ${@:2} --manifest-path $ROOT/crates/${CRATE}/Cargo.toml

View file

@ -1,11 +0,0 @@
[package]
name = "graph"
version = "0.1.0"
edition = "2021"
[dependencies]
chrono = "0.4.39"
plotters = "0.3.7"
rand = "0.8.5"
rand_distr = "0.4.3"
rand_xorshift = "0.3.0"

View file

@ -1,296 +0,0 @@
use std::{collections::HashMap, io::ErrorKind};
use chrono::{DateTime, Timelike, Utc};
use plotters::prelude::*;
fn main() {
if let Err(e) = std::fs::create_dir("output") {
if e.kind() != ErrorKind::AlreadyExists {
eprintln!("could not create the output directory: {e}");
std::process::exit(1)
}
}
println!("generating coordinate system");
coordinate_system();
println!("generating histogram");
histo().expect("histogram failed");
println!("generating area chart");
area().expect("area failed");
println!("generating timed area chart");
time_area().expect("time area failed");
println!("all done!")
}
fn coordinate_system() {
let root_area = BitMapBackend::new("output/coords.png", (600, 400)).into_drawing_area();
root_area.fill(&WHITE).unwrap();
let mut ctx = ChartBuilder::on(&root_area)
.set_label_area_size(LabelAreaPosition::Left, 40)
.set_label_area_size(LabelAreaPosition::Bottom, 40)
.caption("Line Plot Demo", ("sans-serif", 40))
.build_cartesian_2d(-10..10, 0..100)
.unwrap();
ctx.configure_mesh().draw().unwrap();
ctx.draw_series(LineSeries::new((-10..=10).map(|x| (x, x * x)), &GREEN))
.unwrap();
}
fn histo() -> Result<(), Box<dyn std::error::Error>> {
const OUT_FILE_NAME: &str = "output/histogram.png";
let root = BitMapBackend::new(OUT_FILE_NAME, (640, 480)).into_drawing_area();
root.fill(&WHITE)?;
let mut chart = ChartBuilder::on(&root)
.x_label_area_size(35)
.y_label_area_size(40)
.margin(5)
.caption("Histogram Test", ("sans-serif", 50.0))
.build_cartesian_2d((0u32..10u32).into_segmented(), 0u32..10u32)?;
chart
.configure_mesh()
.disable_x_mesh()
.bold_line_style(WHITE.mix(0.3))
.y_desc("Count")
.x_desc("Bucket")
.axis_desc_style(("sans-serif", 15))
.draw()?;
let data = [
0u32, 1, 1, 1, 4, 2, 5, 7, 8, 6, 4, 2, 1, 8, 3, 3, 3, 4, 4, 3, 3, 3,
];
chart.draw_series(
Histogram::vertical(&chart)
.style(RED.mix(0.5).filled())
.data(data.iter().map(|x: &u32| (*x, 1))),
)?;
// To avoid the IO failure being ignored silently, we manually call the present function
root.present().expect("Unable to write result to file, please make sure 'plotters-doc-data' dir exists under current dir");
Ok(())
}
fn area() -> Result<(), Box<dyn std::error::Error>> {
const OUT_FILE_NAME: &str = "output/area.png";
use rand::SeedableRng;
use rand_distr::{Distribution, Normal};
use rand_xorshift::XorShiftRng;
let data: Vec<_> = {
let norm_dist = Normal::new(500.0, 100.0).unwrap();
let mut x_rand = XorShiftRng::from_seed(*b"MyFragileSeed345");
let x_iter = norm_dist.sample_iter(&mut x_rand);
x_iter
.filter(|x| *x < 1500.0)
.take(100)
.zip(0..)
.map(|(x, b)| x + (b as f64).powf(1.2))
.collect()
};
let root = BitMapBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
root.fill(&WHITE)?;
let mut chart = ChartBuilder::on(&root)
.set_label_area_size(LabelAreaPosition::Left, 60)
.set_label_area_size(LabelAreaPosition::Bottom, 60)
.caption("Area Chart Demo", ("sans-serif", 40))
.build_cartesian_2d(0..(data.len() - 1), 0.0..1500.0)?;
chart
.configure_mesh()
.disable_x_mesh()
.disable_y_mesh()
.draw()?;
chart.draw_series(
AreaSeries::new(
(0..).zip(data.iter()).map(|(x, y)| (x, *y)),
0.0,
RED.mix(0.2),
)
.border_style(RED),
)?;
// To avoid the IO failure being ignored silently, we manually call the present function
root.present().expect("Unable to write result to file, please make sure 'plotters-doc-data' dir exists under current dir");
Ok(())
}
fn time_area() -> Result<(), Box<dyn std::error::Error>> {
use plotters::prelude::*;
use chrono::{TimeZone, Utc};
const OUT_FILE_NAME: &str = "output/timed_data.png";
let root = BitMapBackend::new(OUT_FILE_NAME, (1024, 768)).into_drawing_area();
root.fill(&WHITE)?;
let mut chart = ChartBuilder::on(&root)
.margin(10)
.caption(
"Monthly Average Temperate in Salt Lake City, UT",
("sans-serif", 40),
)
.set_label_area_size(LabelAreaPosition::Left, 60)
.set_label_area_size(LabelAreaPosition::Right, 60)
.set_label_area_size(LabelAreaPosition::Bottom, 40)
.build_cartesian_2d(
(Utc.ymd(2010, 1, 1)..Utc.ymd(2018, 12, 1)).monthly(),
14.0..104.0,
)?
.set_secondary_coord(
(Utc.ymd(2010, 1, 1)..Utc.ymd(2018, 12, 1)).monthly(),
-10.0..40.0,
);
chart
.configure_mesh()
.disable_x_mesh()
.disable_y_mesh()
.x_labels(30)
.max_light_lines(4)
.y_desc("Average Temp (F)")
.draw()?;
chart
.configure_secondary_axes()
.y_desc("Average Temp (C)")
.draw()?;
chart.draw_series(LineSeries::new(
TIME_DATA.iter().map(|(y, m, t)| (Utc.ymd(*y, *m, 1), *t)),
&BLUE,
))?;
chart.draw_series(
TIME_DATA
.iter()
.map(|(y, m, t)| Circle::new((Utc.ymd(*y, *m, 1), *t), 3, BLUE.filled())),
)?;
// To avoid the IO failure being ignored silently, we manually call the present function
root.present().expect("Unable to write result to file, please make sure 'plotters-doc-data' dir exists under current dir");
println!("Result has been saved to {}", OUT_FILE_NAME);
Ok(())
}
const TIME_DATA: [(i32, u32, f64); 12 * 9] = [
(2010, 1, 32.4),
(2010, 2, 37.5),
(2010, 3, 44.5),
(2010, 4, 50.3),
(2010, 5, 55.0),
(2010, 6, 70.0),
(2010, 7, 78.7),
(2010, 8, 76.5),
(2010, 9, 68.9),
(2010, 10, 56.3),
(2010, 11, 40.3),
(2010, 12, 36.5),
(2011, 1, 28.8),
(2011, 2, 35.1),
(2011, 3, 45.5),
(2011, 4, 48.9),
(2011, 5, 55.1),
(2011, 6, 68.8),
(2011, 7, 77.9),
(2011, 8, 78.4),
(2011, 9, 68.2),
(2011, 10, 55.0),
(2011, 11, 41.5),
(2011, 12, 31.0),
(2012, 1, 35.6),
(2012, 2, 38.1),
(2012, 3, 49.1),
(2012, 4, 56.1),
(2012, 5, 63.4),
(2012, 6, 73.0),
(2012, 7, 79.0),
(2012, 8, 79.0),
(2012, 9, 68.8),
(2012, 10, 54.9),
(2012, 11, 45.2),
(2012, 12, 34.9),
(2013, 1, 19.7),
(2013, 2, 31.1),
(2013, 3, 46.2),
(2013, 4, 49.8),
(2013, 5, 61.3),
(2013, 6, 73.3),
(2013, 7, 80.3),
(2013, 8, 77.2),
(2013, 9, 68.3),
(2013, 10, 52.0),
(2013, 11, 43.2),
(2013, 12, 25.7),
(2014, 1, 31.5),
(2014, 2, 39.3),
(2014, 3, 46.4),
(2014, 4, 52.5),
(2014, 5, 63.0),
(2014, 6, 71.3),
(2014, 7, 81.0),
(2014, 8, 75.3),
(2014, 9, 70.0),
(2014, 10, 58.6),
(2014, 11, 42.1),
(2014, 12, 38.0),
(2015, 1, 35.3),
(2015, 2, 45.2),
(2015, 3, 50.9),
(2015, 4, 54.3),
(2015, 5, 60.5),
(2015, 6, 77.1),
(2015, 7, 76.2),
(2015, 8, 77.3),
(2015, 9, 70.4),
(2015, 10, 60.6),
(2015, 11, 40.9),
(2015, 12, 32.4),
(2016, 1, 31.5),
(2016, 2, 35.1),
(2016, 3, 49.1),
(2016, 4, 55.1),
(2016, 5, 60.9),
(2016, 6, 76.9),
(2016, 7, 80.0),
(2016, 8, 77.0),
(2016, 9, 67.1),
(2016, 10, 59.1),
(2016, 11, 47.4),
(2016, 12, 31.8),
(2017, 1, 29.4),
(2017, 2, 42.4),
(2017, 3, 51.7),
(2017, 4, 51.7),
(2017, 5, 62.5),
(2017, 6, 74.8),
(2017, 7, 81.3),
(2017, 8, 78.1),
(2017, 9, 65.7),
(2017, 10, 52.5),
(2017, 11, 49.0),
(2017, 12, 34.4),
(2018, 1, 38.1),
(2018, 2, 37.5),
(2018, 3, 45.4),
(2018, 4, 54.6),
(2018, 5, 64.0),
(2018, 6, 74.9),
(2018, 7, 82.5),
(2018, 8, 78.1),
(2018, 9, 71.9),
(2018, 10, 53.2),
(2018, 11, 39.7),
(2018, 12, 33.6),
];

View file

@ -1,6 +0,0 @@
[package]
name = "iter-prod"
version = "0.1.0"
edition = "2021"
[dependencies]

View file

@ -1,58 +0,0 @@
//! How to calc the factorial n! with just a single line, no imperative style loops, no vars.
//!
//! See [factorial] for how it's done and [myprod] for how it works under the hood.
/// Just so there is something to be ran :)
pub fn main() {
let x = 7;
println!("{}", factorial(x));
}
/// Return the factorial of `n` which is defined as `1 * 2 * 3 * … * n`.
/// <https://en.wikipedia.org/wiki/Factorial>
///
/// Task from rustlings
///
/// Do not use:
/// - early returns (using the `return` keyword explicitly)
///
/// Try not to use:
/// - imperative style loops (for/while)
/// - additional variables
///
/// For an extra challenge, don't use:
/// - recursion
pub fn factorial(n: u128) -> u128 {
(1..n + 1).product()
}
/// Does the same as [std::iter::Iterator::product] from the stdlib.
///
/// The code for [Iterator::product] can be hard to find because it is implemented with a trait and
/// then a macro. Here is a simple version of it.
#[allow(dead_code)]
pub fn myprod<T>(iter: T) -> u128
where
T: Iterator<Item = u128>,
{
#[allow(clippy::unnecessary_fold)] // clippy detects that this is just Iter::product
iter.fold(1, |acc, v| acc * v)
}
/// That's just my unit tests to confirm it works
#[cfg(test)]
pub mod tests {
use super::*;
#[test]
pub fn works() {
assert_eq!(factorial(7), 5040);
assert_eq!(factorial(9), 362880);
}
#[test]
pub fn myprod_same_as_real() {
assert_eq!((1..5).product::<u128>(), myprod(1..5));
assert_eq!((1..30).product::<u128>(), myprod(1..30));
// assert_eq!((1..50).product::<u128>(), myprod(1..50)); // u128 overflows here
}
}

View file

@ -1,6 +0,0 @@
[package]
name = "sdl-idiot"
version = "0.1.0"
edition = "2024"
[dependencies]

View file

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

View file

@ -1,7 +0,0 @@
[package]
name = "tpdemo"
version = "0.1.0"
edition = "2021"
[dependencies]
threadpool = "1.8.1"

View file

@ -1,25 +0,0 @@
use std::sync::{Arc, Mutex};
use threadpool::ThreadPool;
struct Fish(i32);
fn main() {
let thing: Arc<Mutex<Fish>> = Arc::new(Mutex::new(Fish(0)));
let tp = ThreadPool::new(20);
while thing.lock().unwrap().0 < 200 {
let thing = thing.clone();
tp.execute(move || {
do_thing(thing);
});
}
}
fn do_thing(thing: Arc<Mutex<Fish>>) {
println!("blubb");
#[allow(deprecated)]
std::thread::sleep_ms(1000);
thing.lock().unwrap().0 += 1;
}

View file

@ -1,11 +0,0 @@
#!/bin/bash
root=$PWD
DIRS=$(ls ./crates)
echo $DIRS
for dir in $DIRS; do
cd crates/$dir;
eval "$@";
cd $root;
done;

View file

@ -1,11 +0,0 @@
#!/bin/bash
ROOT=$PWD
DIRS=$(ls ./crates)
echo $DIRS
for dir in $DIRS; do
cd crates/$dir;
eval "bash $ROOT/cargo.sh $@";
cd $ROOT;
done;

View file

@ -6,13 +6,5 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
tokio = { version = "1.35.1", features = [
"net",
"rt",
"macros",
"rt-multi-thread",
"io-util",
"time",
"sync",
] }
futures = { version = "0.3.30", features = ["executor"] }
tokio.workspace = true
futures.workspace = true

View file

@ -11,5 +11,5 @@ libpt.workspace = true
rand = { version = "0.8.5", features = ["serde"] }
serde.workspace = true
serde_json.workspace = true
tokio = { version = "1.35.1", features = ["full"] }
tokio.workspace = true
warp = "0.3.6"

View file

@ -9,5 +9,5 @@ edition = "2021"
libpt.workspace = true
serde = { workspace = true, features = ["serde_derive"] }
serde_json.workspace = true
tokio = { version = "1.35.1", features = ["full"] }
tokio = { workspace = true, features = ["full"] }
warp = "0.3.6"

View file

@ -12,7 +12,5 @@ async fn main() {
debug!("spawning data_processing task: {store:#?}");
tokio::spawn(data_processing(store.clone()));
info!("starting webserver");
warp::serve(get_store(store))
.run(([127, 0, 0, 1], 3030))
.await;
warp::serve(routes(store)).run(([127, 0, 0, 1], 3030)).await;
}

View file

@ -18,6 +18,7 @@ pub fn get_store(store: Store) -> impl Filter<Extract = impl Reply, Error = Reje
warp::path!("api" / "v1" / "store")
.and(warp::get())
.and(with_store(store))
// .and(warp::body::content_length_limit(2 << 13))
.then(|store: Store| async move {
info!("GET /api/v1/store");
warp::reply::json(&store.get().await)

369
members/serde-json-demo/Cargo.lock generated Normal file
View file

@ -0,0 +1,369 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "android-tzdata"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
[[package]]
name = "android_system_properties"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
dependencies = [
"libc",
]
[[package]]
name = "autocfg"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "bumpalo"
version = "3.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
[[package]]
name = "cc"
version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chrono"
version = "0.4.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
dependencies = [
"android-tzdata",
"iana-time-zone",
"js-sys",
"num-traits",
"serde",
"time",
"wasm-bindgen",
"winapi",
]
[[package]]
name = "core-foundation-sys"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
[[package]]
name = "iana-time-zone"
version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
dependencies = [
"android_system_properties",
"core-foundation-sys",
"iana-time-zone-haiku",
"js-sys",
"wasm-bindgen",
"windows",
]
[[package]]
name = "iana-time-zone-haiku"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
dependencies = [
"cc",
]
[[package]]
name = "itoa"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
[[package]]
name = "js-sys"
version = "0.3.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
dependencies = [
"wasm-bindgen",
]
[[package]]
name = "libc"
version = "0.2.147"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
[[package]]
name = "log"
version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
[[package]]
name = "num-traits"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
dependencies = [
"autocfg",
]
[[package]]
name = "once_cell"
version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
[[package]]
name = "proc-macro2"
version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78803b62cbf1f46fde80d7c0e803111524b9877184cfe7c3033659490ac7a7da"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
dependencies = [
"proc-macro2",
]
[[package]]
name = "ryu"
version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9"
[[package]]
name = "serde"
version = "1.0.171"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde-json-demo"
version = "0.1.0"
dependencies = [
"chrono",
"serde",
"serde_json",
]
[[package]]
name = "serde_derive"
version = "1.0.171"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "serde_json"
version = "1.0.102"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5062a995d481b2308b6064e9af76011f2921c35f97b0468811ed9f6cd91dfed"
dependencies = [
"itoa",
"ryu",
"serde",
]
[[package]]
name = "syn"
version = "2.0.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "15e3fc8c0c74267e2df136e5e5fb656a464158aa57624053375eb9c8c6e25ae2"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "time"
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
dependencies = [
"libc",
"wasi",
"winapi",
]
[[package]]
name = "unicode-ident"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73"
[[package]]
name = "wasi"
version = "0.10.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
[[package]]
name = "wasm-bindgen"
version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
dependencies = [
"cfg-if",
"wasm-bindgen-macro",
]
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
"syn",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
]
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [
"proc-macro2",
"quote",
"syn",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
dependencies = [
"windows-targets",
]
[[package]]
name = "windows-targets"
version = "0.48.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
[[package]]
name = "windows_aarch64_msvc"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
[[package]]
name = "windows_i686_gnu"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
[[package]]
name = "windows_i686_msvc"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
[[package]]
name = "windows_x86_64_gnu"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
[[package]]
name = "windows_x86_64_msvc"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"

Some files were not shown because too many files have changed in this diff Show more