~boringcactus/survey-of-rust-gui-libraries

b69d315727f5be9e5250f7cb72cc2c43052e2697 — Melody Horn 2 years ago 9ed71ba
write neutrino test
4 files changed, 329 insertions(+), 1 deletions(-)

M Cargo.lock
M Cargo.toml
A neutrino-test/Cargo.toml
A neutrino-test/src/main.rs
M Cargo.lock => Cargo.lock +183 -0
@@ 264,6 264,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "base64"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "base64"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"



@@ 326,6 334,11 @@ version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "boxfnonce"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "bumpalo"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 341,6 354,11 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "bytecount"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "bytemuck"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 2111,6 2129,11 @@ dependencies = [
]

[[package]]
name = "json"
version = "0.11.15"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "kas"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 2220,6 2243,18 @@ version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "lexical-core"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
 "ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
 "static_assertions 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "libc"
version = "0.2.72"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 2444,6 2479,25 @@ dependencies = [
]

[[package]]
name = "neutrino"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
 "json 0.11.15 (registry+https://github.com/rust-lang/crates.io-index)",
 "rsass 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
 "strfmt 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
 "web-view 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "neutrino-test"
version = "0.1.0"
dependencies = [
 "neutrino 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "nix"
version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 2461,6 2515,16 @@ version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "nom"
version = "5.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "lexical-core 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
 "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "num"
version = "0.1.42"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 2524,6 2588,16 @@ dependencies = [
]

[[package]]
name = "num-rational"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
 "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
 "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "num-traits"
version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 2857,6 2931,11 @@ dependencies = [
]

[[package]]
name = "ppv-lite86"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "proc-macro-crate"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 2924,6 3003,27 @@ dependencies = [
]

[[package]]
name = "rand"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
 "libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)",
 "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "rand_chacha"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "ppv-lite86 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "rand_core"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 2937,6 3037,22 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "rand_core"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "rand_hc"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "range-alloc"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 3049,6 3165,19 @@ dependencies = [
]

[[package]]
name = "rsass"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "bytecount 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 "nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 "num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
 "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
 "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "rust-argon2"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 3334,6 3463,11 @@ dependencies = [
]

[[package]]
name = "static_assertions"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "stb_truetype"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 3395,6 3529,11 @@ dependencies = [
]

[[package]]
name = "strfmt"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "svg_fmt"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 3606,6 3745,11 @@ dependencies = [
]

[[package]]
name = "urlencoding"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "vec_map"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 3772,6 3916,16 @@ dependencies = [
]

[[package]]
name = "web-view"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "boxfnonce 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
 "urlencoding 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
 "webview-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "webrender"
version = "0.60.0"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 3835,6 3989,16 @@ dependencies = [
]

[[package]]
name = "webview-sys"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)",
 "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "wgpu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 4222,6 4386,7 @@ dependencies = [
"checksum backtrace 0.3.50 (registry+https://github.com/rust-lang/crates.io-index)" = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293"
"checksum backtrace-sys 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)" = "18fbebbe1c9d1f383a9cc7e8ccdb471b91c8d024ee9c2ca5b5346121fe8b4399"
"checksum base-x 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1b20b618342cf9891c292c4f5ac2cde7287cc5c87e87e9c769d617793607dec1"
"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
"checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
"checksum binary-space-partition 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "88ceb0d16c4fd0e42876e298d7d3ce3780dd9ebdcbe4199816a32c77e08597ff"
"checksum bincode 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d"


@@ 4231,9 4396,11 @@ dependencies = [
"checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
"checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
"checksum boolinator 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cfa8873f51c92e232f9bac4065cddef41b714152812bfc5f7672ba16d6ef8cd9"
"checksum boxfnonce 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5988cb1d626264ac94100be357308f29ff7cbdd3b36bda27f450a4ee3f713426"
"checksum bumpalo 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad807f2fc2bf185eeb98ff3a901bd46dc5ad58163d0fa4577ba0d25674d71708"
"checksum bumpalo 3.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
"checksum bytecount 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b0017894339f586ccb943b01b9555de56770c11cda818e7e3d8bd93f4ed7f46e"
"checksum bytemuck 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "db7a1029718df60331e557c9e83a55523c955e5dd2a7bfeffad6bbd50b538ae9"
"checksum byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
"checksum cairo-rs 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "157049ba9618aa3a61c39d5d785102c04d3b1f40632a706c621a9aedc21e6084"


@@ 4400,6 4567,7 @@ dependencies = [
"checksum itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
"checksum jni-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
"checksum js-sys 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)" = "c4b9172132a62451e56142bff9afc91c8e4a4500aa5b847da36815b63bfda916"
"checksum json 0.11.15 (registry+https://github.com/rust-lang/crates.io-index)" = "92c245af8786f6ac35f95ca14feca9119e71339aaab41e878e7cdd655c97e9e5"
"checksum kas 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "14ad2d3881a7de054f5ada18b8698e109db5e487e7f66d12c8a4dc69a7393b95"
"checksum kas-macros 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4a4061cdd4f43cd79d2ca811ea1164533b9e940b43cf49a175f9cfbbc986106d"
"checksum kas-text 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b0ca68dd9e6618b6faf872071ad9ccfb2a569f88b9bb07cb681af36f89482097"


@@ 4410,6 4578,7 @@ dependencies = [
"checksum kurbo 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "305989d523da0de59dd5e9b66c7c1eb2bcf7c18f538059f21a42ddf72b7333f7"
"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
"checksum lexical-core 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616"
"checksum libc 0.2.72 (registry+https://github.com/rust-lang/crates.io-index)" = "a9f8082297d534141b30c8d39e9b1773713ab50fdbe4ff30f750d063b3bfd701"
"checksum libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
"checksum libloading 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2cadb8e769f070c45df05c78c7520eb4cd17061d4ab262e43cfc68b4d00ac71c"


@@ 4435,14 4604,17 @@ dependencies = [
"checksum ndk-glue 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d1730ee2e3de41c3321160a6da815f008c4006d71b095880ea50e17cf52332b8"
"checksum ndk-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2b2820aca934aba5ed91c79acc72b6a44048ceacc5d36c035ed4e051f12d887d"
"checksum net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)" = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7"
"checksum neutrino 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "91dfeafd95e29aafc2cf316c8853e91303cfb6498fd6ab02770eccf6565c8e57"
"checksum nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6c722bee1037d430d0f8e687bbdbf222f27cc6e4e68d5caf630857bb2b6dbdce"
"checksum nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
"checksum nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
"checksum num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
"checksum num-bigint 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)" = "e63899ad0da84ce718c14936262a41cee2c79c981fc0a0e7c7beb47d5a07e8c1"
"checksum num-complex 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "b288631d7878aaf59442cffd36910ea604ecd7745c36054328595114001c9656"
"checksum num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
"checksum num-iter 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
"checksum num-rational 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
"checksum num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
"checksum num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
"checksum num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
"checksum num_enum 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ca565a7df06f3d4b485494f25ba05da1435950f4dc263440eda7a6fa9b8e36e4"


@@ 4478,6 4650,7 @@ dependencies = [
"checksum pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
"checksum plane-split 0.13.9 (registry+https://github.com/rust-lang/crates.io-index)" = "a48598c54627d07c718a882d1f45a4370fe0117744ae97850a9b12a33a51c194"
"checksum ppv-lite86 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20"
"checksum proc-macro-crate 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
"checksum proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)" = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"
"checksum proc-macro-nested 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"


@@ 4487,8 4660,12 @@ dependencies = [
"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
"checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
"checksum range-alloc 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a871f1e45a3a3f0c73fb60343c811238bb5143a81642e27c2ac7aac27ff01a63"
"checksum raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0a441a7a6c80ad6473bd4b74ec1c9a4c951794285bf941c2126f607c72e48211"
"checksum rayon 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080"


@@ 4501,6 4678,7 @@ dependencies = [
"checksum rendy-memory 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ed492161a819feae7f27f418bb16035276ac20649c60d756699152cb5c1960ec"
"checksum rental 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8545debe98b2b139fb04cad8618b530e9b07c152d99a5de83c860b877d67847f"
"checksum rental-impl 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "475e68978dc5b743f2f40d8e0a8fdc83f1c5e78cbf4b8fa5e74e73beebc340de"
"checksum rsass 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)" = "43524eeeb78946594993a4abf1ee82c429d7afc16daf2775efe8767b38cd80ce"
"checksum rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
"checksum rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"


@@ 4536,12 4714,14 @@ dependencies = [
"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
"checksum stack_dst 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "86d5e1dc9a5f4ac56709c87eeeacd25cb58eca03f4d6a3103ef65b6beb9307eb"
"checksum standback 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b0437cfb83762844799a60e1e3b489d5ceb6a650fbacb86437badc1b6d87b246"
"checksum static_assertions 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
"checksum stb_truetype 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f77b6b07e862c66a9f3e62a07588fee67cd90a9135a2b942409f195507b4fb51"
"checksum stdweb 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
"checksum stdweb-derive 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
"checksum stdweb-internal-macros 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
"checksum stdweb-internal-runtime 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
"checksum storage-map 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0a4829a5c591dc24a944a736d6b1e4053e51339a79fd5d4702c4c999a9c45e"
"checksum strfmt 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b278b244ef7aa5852b277f52dd0c6cac3a109919e1f6d699adde63251227a30f"
"checksum svg_fmt 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20e5f95e89d737f30cd1f98a9af9a85c2a1cc162cfedfba5a0c54cf92d7206fc"
"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
"checksum syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd"


@@ 4569,6 4749,7 @@ dependencies = [
"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
"checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
"checksum url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
"checksum urlencoding 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c9232eb53352b4442e40d7900465dfc534e8cb2dc8f18656fcb2ac16112b5593"
"checksum vec_map 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
"checksum version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"


@@ 4587,9 4768,11 @@ dependencies = [
"checksum wayland-scanner 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93b02247366f395b9258054f964fe293ddd019c3237afba9be2ccbe9e1651c3d"
"checksum wayland-sys 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d94e89a86e6d6d7c7c9b19ebf48a03afaac4af6bc22ae570e9a24124b75358f4"
"checksum web-sys 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)" = "863539788676619aac1a23e2df3655e96b32b0e05eb72ca34ba045ad573c625d"
"checksum web-view 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e91854017b16c6f40e3a8ca68b68a7d2f698f4d1794f8364b177616ee285795b"
"checksum webrender 0.60.0 (registry+https://github.com/rust-lang/crates.io-index)" = "da8deb647ccc878899540dbe8d2487f4419598e2650d5ffe932fb6603998c191"
"checksum webrender_api 0.60.0 (registry+https://github.com/rust-lang/crates.io-index)" = "761a798adaa04f8b21047ddee279575fb4a265627bff76a07fe9751bbdfc9773"
"checksum webrender_build 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "891df3a4a37858a7915fb95250cf99dcb9345fbdf02b106674c356eb2dda8c39"
"checksum webview-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "106a5fafa44ab8466a629052a53480ea3f352db796f08b0144a8909cc9e8a173"
"checksum wgpu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e9c1ff587eddd68cdf2a78889c7a2128683161c72c67b94457cf498accaf7b"
"checksum wgpu 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5dece29f3cd403aabf4056595eabe4b9af56b8bfae12445f097cf8666a41829"
"checksum wgpu-core 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f07fd0b6b3b340465bce96286350d34b7661fb623ef24c3c2b8902ea654cd4e0"

M Cargo.toml => Cargo.toml +1 -1
@@ 1,2 1,2 @@
[workspace]
members = ['azul-test', 'druid-test', 'fltk-test', 'iced-test', 'kas-test']
members = ['azul-test', 'druid-test', 'fltk-test', 'iced-test', 'kas-test', 'neutrino-test']

A neutrino-test/Cargo.toml => neutrino-test/Cargo.toml +10 -0
@@ 0,0 1,10 @@
[package]
name = "neutrino-test"
version = "0.1.0"
authors = ["Melody Horn <boringcactus@gmail.com>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
neutrino = "0.3.1"

A neutrino-test/src/main.rs => neutrino-test/src/main.rs +135 -0
@@ 0,0 1,135 @@
use std::cell::RefCell;
use std::rc::Rc;

use neutrino::{App, Window};
use neutrino::widgets::button::{Button, ButtonListener, ButtonState};
use neutrino::widgets::checkbox::{CheckBox, CheckBoxListener, CheckBoxState};
use neutrino::widgets::container::{Container, ContainerListener, Direction, ContainerState};
use neutrino::widgets::textinput::{TextInput, TextInputListener, TextInputState};
use neutrino::widgets::widget::Widget;

struct TodoItem {
    name: String,
    done: bool,
}

impl TodoItem {
    fn new<S: Into<String>>(name: S, done: bool) -> Self {
        TodoItem {
            name: name.into(),
            done
        }
    }
}

struct NewItemNameFieldListener {
    data: Rc<RefCell<String>>,
}

impl TextInputListener for NewItemNameFieldListener {
    fn on_update(&self, state: &mut TextInputState) {
        state.set_value(&*self.data.borrow());
    }

    fn on_change(&self, state: &TextInputState) {
        *(self.data.borrow_mut()) = state.value().into();
    }
}

struct NewItemButtonListener {
    name: Rc<RefCell<String>>,
    items: Rc<RefCell<Vec<Rc<RefCell<TodoItem>>>>>,
}

impl ButtonListener for NewItemButtonListener {
    fn on_change(&self, _state: &ButtonState) {
        self.items.borrow_mut().push(Rc::new(RefCell::new(
            TodoItem::new(&*self.name.borrow(), false)
        )));
    }

    fn on_update(&self, _state: &mut ButtonState) {
        // don't do anything
    }
}

struct DoneListener {
    item: Rc<RefCell<TodoItem>>,
}

impl CheckBoxListener for DoneListener {
    fn on_change(&self, state: &CheckBoxState) {
        self.item.borrow_mut().done = state.checked()
    }

    fn on_update(&self, state: &mut CheckBoxState) {
        state.set_checked(self.item.borrow().done);
    }
}

struct ItemsListener {
    items: Rc<RefCell<Vec<Rc<RefCell<TodoItem>>>>>,
}

impl ContainerListener for ItemsListener {
    fn on_update(&self, state: &mut ContainerState) {
        let entries = self.items.borrow().iter().enumerate().map(|(i, item)| {
            let mut done = CheckBox::new(&format!("{}-done", i));
            done.set_text(&item.borrow().name);
            if item.borrow().done {
                done.set_checked();
            }
            done.set_listener(Box::new(DoneListener {
                item: Rc::clone(&item),
            }));

            let result: Box<dyn Widget> = Box::new(done);
            result
        }).collect::<Vec<Box<dyn Widget>>>();
        state.set_children(entries);
    }
}

fn main() {
    let new_item_name = Rc::new(RefCell::new(String::new()));

    let mut new_item_name_field = TextInput::new("new-item-name-field");
    new_item_name_field.set_stretched();
    new_item_name_field.set_listener(Box::new(NewItemNameFieldListener { data: Rc::clone(&new_item_name) }));

    let items = Rc::new(RefCell::new(vec![
        Rc::new(RefCell::new(TodoItem::new("Write example", false))),
        Rc::new(RefCell::new(TodoItem::new("Be cool", true))),
    ]));

    let mut new_item_button = Button::new("new-item-button");
    new_item_button.set_text("Add");
    new_item_button.set_listener(Box::new(NewItemButtonListener {
        name: Rc::clone(&new_item_name),
        items: Rc::clone(&items),
    }));

    let mut add_item_panel = Container::new("add-item");
    add_item_panel.set_direction(Direction::Horizontal);
    add_item_panel.add(Box::new(new_item_name_field));
    add_item_panel.add(Box::new(new_item_button));

    let mut items_panel = Container::new("items-panel");
    items_panel.set_direction(Direction::Vertical);
    items_panel.set_listener(Box::new(ItemsListener {
        items: Rc::clone(&items),
    }));
    items_panel.on_update();

    let mut main_window_panel = Container::new("main");
    main_window_panel.set_direction(Direction::Vertical);
    main_window_panel.add(Box::new(add_item_panel));
    main_window_panel.add(Box::new(items_panel));

    let mut window = Window::new();
    window.set_title("neutrino-test");
    window.set_size(320, 240);
    window.set_child(Box::new(main_window_panel));

    App::run(window);
}