1.1--- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2+++ b/Containerfile Thu Jun 15 21:42:39 2023 -0400
1.3@@ -0,0 +1,4 @@
1.4+FROM clfoundation/sbcl:latest
1.5+COPY . /usr/src/demo
1.6+WORKDIR /usr/src/demo
1.7+CMD [ "make", "ci" ]
1.8\ No newline at end of file
2.1--- a/Dockerfile Tue Jun 06 20:21:08 2023 -0400
2.2+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
2.3@@ -1,19 +0,0 @@
2.4-ARG OS=archlinux
2.5-ARG VERSION
2.6-ADD https://github.com/sbcl/sbcl/archive/sbcl-$VERSION.tar.gz sbcl.tar.gz
2.7-
2.8-RUN set -x; \
2.9- tar xvfz sbcl.tar.gz && rm sbcl.tar.gz && cd "sbcl-sbcl-${VERSION}" && \
2.10- echo "\"$VERSION\"" > version.s && \
2.11-
2.12-ARG BUILD_DATE
2.13-ARG VCS_REF
2.14-ARG OS
2.15-ARG VERSION
2.16-
2.17-LABEL org.label-schema.build-date=$BUILD_DATE \
2.18- org.label-schema.vcs-ref=$VCS_REF \
2.19- org.label-schema.version=$VERSION \
2.20- org.label-schema.schema-version="1.0"
2.21-
2.22-ENTRYPOINT ["/usr/local/bin/sbcl"]
2.23\ No newline at end of file
3.1--- a/src/crates/obj/src/hash.rs Tue Jun 06 20:21:08 2023 -0400
3.2+++ b/src/crates/obj/src/hash.rs Thu Jun 15 21:42:39 2023 -0400
3.3@@ -12,8 +12,8 @@
3.4
3.5 #[cfg(test)]
3.6 mod tests {
3.7+ use super::*;
3.8 use crate::*;
3.9- use super::*;
3.10 #[test]
3.11 fn id_state_hash() {
3.12 let id = id::Id(vec![0; KEY_LEN]);
4.1--- a/src/crates/obj/src/id.rs Tue Jun 06 20:21:08 2023 -0400
4.2+++ b/src/crates/obj/src/id.rs Thu Jun 15 21:42:39 2023 -0400
4.3@@ -1,9 +1,9 @@
4.4+use crate::hash::{B3Hasher, KEY_LEN, OUT_LEN};
4.5+use rand::Rng;
4.6+use serde::{Deserialize, Serialize};
4.7 use std::{fmt, str::FromStr};
4.8-use serde::{Serialize, Deserialize};
4.9+pub use ulid::Ulid;
4.10 pub use uuid::Uuid;
4.11-pub use ulid::Ulid;
4.12-use rand::Rng;
4.13-use crate::hash::{KEY_LEN,OUT_LEN,B3Hasher};
4.14 /// a simple Id abstraction
4.15 #[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Debug, Serialize, Deserialize, Hash)]
4.16 pub struct Id(pub Vec<u8>);
5.1--- a/src/crates/obj/src/lib.rs Tue Jun 06 20:21:08 2023 -0400
5.2+++ b/src/crates/obj/src/lib.rs Thu Jun 15 21:42:39 2023 -0400
5.3@@ -4,11 +4,11 @@
5.4 pub use err::{Error, Result};
5.5 mod types;
5.6 pub use types::*;
5.7-pub mod id;
5.8 pub mod auth;
5.9+pub mod database;
5.10 pub mod hash;
5.11+pub mod id;
5.12 pub mod network;
5.13-pub mod database;
5.14 pub use bincode;
5.15 pub use ron;
5.16 use ron::extensions::Extensions;
5.17@@ -146,4 +146,3 @@
5.18 impl Objective for usize {}
5.19 impl Objective for f32 {}
5.20 impl Objective for f64 {}
5.21-
6.1--- a/src/crates/obj/src/types.rs Tue Jun 06 20:21:08 2023 -0400
6.2+++ b/src/crates/obj/src/types.rs Thu Jun 15 21:42:39 2023 -0400
6.3@@ -3,7 +3,7 @@
6.4 use std::collections::HashMap;
6.5
6.6 /// APPLICATION TYPES
6.7-#[derive(Serialize,Deserialize,Default)]
6.8+#[derive(Serialize, Deserialize, Default)]
6.9 pub enum Service {
6.10 Weather,
6.11 Stocks,
6.12@@ -36,10 +36,10 @@
6.13 }
6.14 }
6.15
6.16-#[derive(Serialize,Deserialize,Default)]
6.17+#[derive(Serialize, Deserialize, Default)]
6.18 pub struct CustomService {
6.19 name: String,
6.20- registry: HashMap<String,Vec<u8>>,
6.21+ registry: HashMap<String, Vec<u8>>,
6.22 }
6.23
6.24 impl Objective for CustomService {}
6.25@@ -56,11 +56,11 @@
6.26 }
6.27 }
6.28
6.29-#[derive(Serialize, Deserialize,Default)]
6.30+#[derive(Serialize, Deserialize, Default)]
6.31 pub struct Complex<X: Objective> {
6.32 data: X,
6.33 stack: Vec<u8>,
6.34- registry: HashMap<String,Vec<u8>>,
6.35+ registry: HashMap<String, Vec<u8>>,
6.36 }
6.37
6.38 impl Objective for Complex<Service> {}
7.1--- a/src/crates/service/lib.rs Tue Jun 06 20:21:08 2023 -0400
7.2+++ b/src/crates/service/lib.rs Thu Jun 15 21:42:39 2023 -0400
7.3@@ -0,0 +1,1 @@
7.4+
8.1--- a/src/crates/service/main.rs Tue Jun 06 20:21:08 2023 -0400
8.2+++ b/src/crates/service/main.rs Thu Jun 15 21:42:39 2023 -0400
8.3@@ -1,6 +1,6 @@
8.4-use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
8.5+use sqlx::postgres::{PgPool, PgPoolOptions};
8.6 use tokio::net::TcpListener;
8.7-use sqlx::postgres::{PgPool, PgPoolOptions};
8.8+use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
8.9
8.10 #[tokio::main]
8.11 async fn main() {
9.1--- a/src/crates/service/tests.rs Tue Jun 06 20:21:08 2023 -0400
9.2+++ b/src/crates/service/tests.rs Thu Jun 15 21:42:39 2023 -0400
9.3@@ -0,0 +1,1 @@
9.4+
10.1--- a/src/crates/ui/build.rs Tue Jun 06 20:21:08 2023 -0400
10.2+++ b/src/crates/ui/build.rs Thu Jun 15 21:42:39 2023 -0400
10.3@@ -1,3 +1,3 @@
10.4 fn main() {
10.5- slint_build::compile("ui.slint").unwrap();
10.6+ slint_build::compile("ui.slint").unwrap();
10.7 }
11.1--- a/src/crates/ui/lib.rs Tue Jun 06 20:21:08 2023 -0400
11.2+++ b/src/crates/ui/lib.rs Thu Jun 15 21:42:39 2023 -0400
11.3@@ -11,59 +11,67 @@
11.4
11.5 #[cfg_attr(target_arch = "wasm32", wasm_bindgen(start))]
11.6 pub fn run() {
11.7- // This provides better error messages in debug mode.
11.8- // It's disabled in release mode so it doesn't bloat up the file size.
11.9- #[cfg(all(debug_assertions, target_arch = "wasm32"))]
11.10- console_error_panic_hook::set_once();
11.11+ // This provides better error messages in debug mode.
11.12+ // It's disabled in release mode so it doesn't bloat up the file size.
11.13+ #[cfg(all(debug_assertions, target_arch = "wasm32"))]
11.14+ console_error_panic_hook::set_once();
11.15
11.16- let app = App::new().unwrap();
11.17-
11.18- let row_data: Rc<VecModel<slint::ModelRc<StandardListViewItem>>> = Rc::new(VecModel::default());
11.19+ let app = App::new().unwrap();
11.20
11.21- for r in 1..101 {
11.22- let items = Rc::new(VecModel::default());
11.23+ let row_data: Rc<VecModel<slint::ModelRc<StandardListViewItem>>> = Rc::new(VecModel::default());
11.24
11.25- for c in 1..5 {
11.26- items.push(slint::format!("Item {r}.{c}").into());
11.27- }
11.28+ for r in 1..101 {
11.29+ let items = Rc::new(VecModel::default());
11.30
11.31- row_data.push(items.into());
11.32+ for c in 1..5 {
11.33+ items.push(slint::format!("Item {r}.{c}").into());
11.34 }
11.35
11.36- app.global::<TableViewPageAdapter>().set_row_data(row_data.clone().into());
11.37+ row_data.push(items.into());
11.38+ }
11.39
11.40- app.global::<TableViewPageAdapter>().on_sort_ascending({
11.41- let app_weak = app.as_weak();
11.42- let row_data = row_data.clone();
11.43- move |index| {
11.44- let row_data = row_data.clone();
11.45+ app
11.46+ .global::<TableViewPageAdapter>()
11.47+ .set_row_data(row_data.clone().into());
11.48
11.49- let sort_model = Rc::new(row_data.sort_by(move |r_a, r_b| {
11.50- let c_a = r_a.row_data(index as usize).unwrap();
11.51- let c_b = r_b.row_data(index as usize).unwrap();
11.52+ app.global::<TableViewPageAdapter>().on_sort_ascending({
11.53+ let app_weak = app.as_weak();
11.54+ let row_data = row_data.clone();
11.55+ move |index| {
11.56+ let row_data = row_data.clone();
11.57
11.58- c_a.text.cmp(&c_b.text)
11.59- }));
11.60+ let sort_model = Rc::new(row_data.sort_by(move |r_a, r_b| {
11.61+ let c_a = r_a.row_data(index as usize).unwrap();
11.62+ let c_b = r_b.row_data(index as usize).unwrap();
11.63
11.64- app_weak.unwrap().global::<TableViewPageAdapter>().set_row_data(sort_model.into());
11.65- }
11.66- });
11.67+ c_a.text.cmp(&c_b.text)
11.68+ }));
11.69
11.70- app.global::<TableViewPageAdapter>().on_sort_descending({
11.71- let app_weak = app.as_weak();
11.72- move |index| {
11.73- let row_data = row_data.clone();
11.74+ app_weak
11.75+ .unwrap()
11.76+ .global::<TableViewPageAdapter>()
11.77+ .set_row_data(sort_model.into());
11.78+ }
11.79+ });
11.80
11.81- let sort_model = Rc::new(row_data.sort_by(move |r_a, r_b| {
11.82- let c_a = r_a.row_data(index as usize).unwrap();
11.83- let c_b = r_b.row_data(index as usize).unwrap();
11.84+ app.global::<TableViewPageAdapter>().on_sort_descending({
11.85+ let app_weak = app.as_weak();
11.86+ move |index| {
11.87+ let row_data = row_data.clone();
11.88
11.89- c_b.text.cmp(&c_a.text)
11.90- }));
11.91+ let sort_model = Rc::new(row_data.sort_by(move |r_a, r_b| {
11.92+ let c_a = r_a.row_data(index as usize).unwrap();
11.93+ let c_b = r_b.row_data(index as usize).unwrap();
11.94+
11.95+ c_b.text.cmp(&c_a.text)
11.96+ }));
11.97
11.98- app_weak.unwrap().global::<TableViewPageAdapter>().set_row_data(sort_model.into());
11.99- }
11.100- });
11.101+ app_weak
11.102+ .unwrap()
11.103+ .global::<TableViewPageAdapter>()
11.104+ .set_row_data(sort_model.into());
11.105+ }
11.106+ });
11.107
11.108- app.run().unwrap();
11.109+ app.run().unwrap();
11.110 }
12.1--- a/tools/dep.sh Tue Jun 06 20:21:08 2023 -0400
12.2+++ b/tools/dep.sh Thu Jun 15 21:42:39 2023 -0400
12.3@@ -1,5 +1,6 @@
12.4 #!/usr/bin/sh
12.5 # install demo build dependencies
12.6+# *based on rustup.sh
12.7 set -u
12.8 PKG_URL_ROOT="${PKG_URL_ROOT:-https://rwest.io/otom8/packy/bundle}"
12.9 PKG_NAME="demo_build_deps"
12.10@@ -342,13 +343,12 @@
12.11 ;;
12.12 esac
12.13 done
12.14-
12.15 if $_ansi_escapes_are_valid; then
12.16- printf "\33[1minfo:\33[0m downloading $PKG_NAME\n" 1>&2
12.17+ printf '%s ' "\33[1minfo:\33[0m downloading from::" 1>&2
12.18 else
12.19- printf '%s\n' 'info: downloading $PKG_NAME' 1>&2
12.20+ printf '%s ' 'info: downloading from::' 1>&2
12.21 fi
12.22-
12.23+ printf '%s\n' $_url 1>&2
12.24 ensure mkdir -p "$_dir"
12.25 ensure dl "$_url" "$_file" "$_arch"
12.26 ensure chmod u+x "$_file"