1 Commits

Author SHA1 Message Date
a81022bb0b add failed message 2026-03-28 15:25:32 +07:00
3 changed files with 235 additions and 182 deletions

342
Cargo.lock generated
View File

@@ -612,9 +612,9 @@ dependencies = [
[[package]] [[package]]
name = "aws-lc-sys" name = "aws-lc-sys"
version = "0.39.0" version = "0.39.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fa7e52a4c5c547c741610a2c6f123f3881e409b714cd27e6798ef020c514f0a" checksum = "83a25cf98105baa966497416dbd42565ce3a8cf8dbfd59803ec9ad46f3126399"
dependencies = [ dependencies = [
"cc", "cc",
"cmake", "cmake",
@@ -860,6 +860,15 @@ version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
[[package]]
name = "bzip2"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3a53fac24f34a81bc9954b5d6cfce0c21e18ec6959f44f56e8e90e4bb7c346c"
dependencies = [
"libbz2-rs-sys",
]
[[package]] [[package]]
name = "calloop" name = "calloop"
version = "0.14.4" version = "0.14.4"
@@ -914,9 +923,9 @@ dependencies = [
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.2.57" version = "1.2.58"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1"
dependencies = [ dependencies = [
"find-msvc-tools", "find-msvc-tools",
"jobserver", "jobserver",
@@ -1060,12 +1069,6 @@ dependencies = [
"zeroize", "zeroize",
] ]
[[package]]
name = "circular-buffer"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14c638459986b83c2b885179bd4ea6a2cbb05697b001501a56adb3a3d230803b"
[[package]] [[package]]
name = "clang-sys" name = "clang-sys"
version = "1.8.1" version = "1.8.1"
@@ -1119,9 +1122,9 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
[[package]] [[package]]
name = "cmake" name = "cmake"
version = "0.1.57" version = "0.1.58"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678"
dependencies = [ dependencies = [
"cc", "cc",
] ]
@@ -1200,7 +1203,7 @@ dependencies = [
[[package]] [[package]]
name = "collections" name = "collections"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"indexmap", "indexmap",
"rustc-hash 2.1.1", "rustc-hash 2.1.1",
@@ -1263,6 +1266,7 @@ version = "0.4.37"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7" checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7"
dependencies = [ dependencies = [
"bzip2",
"compression-core", "compression-core",
"deflate64", "deflate64",
"flate2", "flate2",
@@ -1522,7 +1526,7 @@ dependencies = [
"rangemap", "rangemap",
"rustc-hash 2.1.1", "rustc-hash 2.1.1",
"self_cell", "self_cell",
"skrifa 0.40.0", "skrifa",
"smol_str", "smol_str",
"swash", "swash",
"sys-locale", "sys-locale",
@@ -1659,7 +1663,7 @@ dependencies = [
[[package]] [[package]]
name = "derive_refineable" name = "derive_refineable"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@@ -2192,15 +2196,6 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
[[package]]
name = "font-types"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39a654f404bbcbd48ea58c617c2993ee91d1cb63727a37bf2323a4edeed1b8c5"
dependencies = [
"bytemuck",
]
[[package]] [[package]]
name = "font-types" name = "font-types"
version = "0.11.1" version = "0.11.1"
@@ -2522,6 +2517,16 @@ dependencies = [
"wasip3", "wasip3",
] ]
[[package]]
name = "gif"
version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b"
dependencies = [
"color_quant",
"weezl",
]
[[package]] [[package]]
name = "gif" name = "gif"
version = "0.14.1" version = "0.14.1"
@@ -2638,7 +2643,7 @@ dependencies = [
[[package]] [[package]]
name = "gpui" name = "gpui"
version = "0.2.2" version = "0.2.2"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-channel 2.5.0", "async-channel 2.5.0",
@@ -2648,7 +2653,6 @@ dependencies = [
"block", "block",
"cbindgen", "cbindgen",
"chrono", "chrono",
"circular-buffer",
"cocoa 0.26.0", "cocoa 0.26.0",
"cocoa-foundation 0.2.0", "cocoa-foundation 0.2.0",
"collections", "collections",
@@ -2676,7 +2680,7 @@ dependencies = [
"mach2", "mach2",
"media", "media",
"metal", "metal",
"naga 29.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "naga 29.0.1",
"num_cpus", "num_cpus",
"objc", "objc",
"parking", "parking",
@@ -2689,6 +2693,7 @@ dependencies = [
"rand 0.9.2", "rand 0.9.2",
"raw-window-handle", "raw-window-handle",
"refineable", "refineable",
"regex",
"resvg", "resvg",
"scheduler", "scheduler",
"schemars", "schemars",
@@ -2703,6 +2708,7 @@ dependencies = [
"sum_tree", "sum_tree",
"taffy", "taffy",
"thiserror 2.0.18", "thiserror 2.0.18",
"ttf-parser",
"url", "url",
"usvg", "usvg",
"util_macros", "util_macros",
@@ -2717,7 +2723,7 @@ dependencies = [
[[package]] [[package]]
name = "gpui_linux" name = "gpui_linux"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"as-raw-xcb-connection", "as-raw-xcb-connection",
@@ -2765,7 +2771,7 @@ dependencies = [
[[package]] [[package]]
name = "gpui_macos" name = "gpui_macos"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-task", "async-task",
@@ -2807,7 +2813,7 @@ dependencies = [
[[package]] [[package]]
name = "gpui_macros" name = "gpui_macros"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"heck 0.5.0", "heck 0.5.0",
"proc-macro2", "proc-macro2",
@@ -2818,7 +2824,7 @@ dependencies = [
[[package]] [[package]]
name = "gpui_platform" name = "gpui_platform"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"console_error_panic_hook", "console_error_panic_hook",
"gpui", "gpui",
@@ -2831,7 +2837,7 @@ dependencies = [
[[package]] [[package]]
name = "gpui_tokio" name = "gpui_tokio"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"gpui", "gpui",
@@ -2842,7 +2848,7 @@ dependencies = [
[[package]] [[package]]
name = "gpui_util" name = "gpui_util"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"log", "log",
@@ -2851,7 +2857,7 @@ dependencies = [
[[package]] [[package]]
name = "gpui_web" name = "gpui_web"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"console_error_panic_hook", "console_error_panic_hook",
@@ -2875,7 +2881,7 @@ dependencies = [
[[package]] [[package]]
name = "gpui_wgpu" name = "gpui_wgpu"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"bytemuck", "bytemuck",
@@ -2903,7 +2909,7 @@ dependencies = [
[[package]] [[package]]
name = "gpui_windows" name = "gpui_windows"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"collections", "collections",
@@ -2971,7 +2977,7 @@ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"bytemuck", "bytemuck",
"core_maths", "core_maths",
"read-fonts 0.37.0", "read-fonts",
"smallvec", "smallvec",
] ]
@@ -3165,7 +3171,7 @@ dependencies = [
[[package]] [[package]]
name = "http_client" name = "http_client"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-compression", "async-compression",
@@ -3190,7 +3196,7 @@ dependencies = [
[[package]] [[package]]
name = "http_client_tls" name = "http_client_tls"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"rustls", "rustls",
"rustls-platform-verifier", "rustls-platform-verifier",
@@ -3407,7 +3413,7 @@ dependencies = [
"byteorder-lite", "byteorder-lite",
"color_quant", "color_quant",
"exr", "exr",
"gif", "gif 0.14.1",
"image-webp", "image-webp",
"moxcms", "moxcms",
"num-traits", "num-traits",
@@ -3417,8 +3423,8 @@ dependencies = [
"rayon", "rayon",
"rgb", "rgb",
"tiff", "tiff",
"zune-core", "zune-core 0.5.1",
"zune-jpeg", "zune-jpeg 0.5.15",
] ]
[[package]] [[package]]
@@ -3666,10 +3672,12 @@ dependencies = [
[[package]] [[package]]
name = "js-sys" name = "js-sys"
version = "0.3.91" version = "0.3.92"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" checksum = "cc4c90f45aa2e6eacbe8645f77fdea542ac97a494bcd117a67df9ff4d611f995"
dependencies = [ dependencies = [
"cfg-if",
"futures-util",
"once_cell", "once_cell",
"wasm-bindgen", "wasm-bindgen",
] ]
@@ -3744,6 +3752,12 @@ version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8"
[[package]]
name = "libbz2-rs-sys"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.183" version = "0.2.183"
@@ -4022,7 +4036,7 @@ dependencies = [
[[package]] [[package]]
name = "media" name = "media"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"bindgen", "bindgen",
@@ -4116,9 +4130,9 @@ dependencies = [
[[package]] [[package]]
name = "mio" name = "mio"
version = "1.1.1" version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1"
dependencies = [ dependencies = [
"libc", "libc",
"wasi", "wasi",
@@ -4135,31 +4149,6 @@ dependencies = [
"pxfm", "pxfm",
] ]
[[package]]
name = "naga"
version = "29.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85b4372fed0bd362d646d01b6926df0e837859ccc522fed720c395e0460f29c8"
dependencies = [
"arrayvec",
"bit-set",
"bitflags 2.11.0",
"cfg-if",
"cfg_aliases",
"codespan-reporting",
"half",
"hashbrown 0.16.1",
"hexf-parse",
"indexmap",
"libm",
"log",
"num-traits",
"once_cell",
"rustc-hash 1.1.0",
"thiserror 2.0.18",
"unicode-ident",
]
[[package]] [[package]]
name = "naga" name = "naga"
version = "29.0.0" version = "29.0.0"
@@ -4185,6 +4174,31 @@ dependencies = [
"unicode-ident", "unicode-ident",
] ]
[[package]]
name = "naga"
version = "29.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa2630921705b9b01dcdd0b6864b9562ca3c1951eecd0f0c4f5f04f61e412647"
dependencies = [
"arrayvec",
"bit-set",
"bitflags 2.11.0",
"cfg-if",
"cfg_aliases",
"codespan-reporting",
"half",
"hashbrown 0.16.1",
"hexf-parse",
"indexmap",
"libm",
"log",
"num-traits",
"once_cell",
"rustc-hash 1.1.0",
"thiserror 2.0.18",
"unicode-ident",
]
[[package]] [[package]]
name = "nanorand" name = "nanorand"
version = "0.7.0" version = "0.7.0"
@@ -4273,7 +4287,7 @@ checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8"
[[package]] [[package]]
name = "nostr" name = "nostr"
version = "0.44.1" version = "0.44.1"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c" source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [ dependencies = [
"aes", "aes",
"base64", "base64",
@@ -4297,7 +4311,7 @@ dependencies = [
[[package]] [[package]]
name = "nostr-blossom" name = "nostr-blossom"
version = "0.44.0" version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c" source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [ dependencies = [
"base64", "base64",
"nostr", "nostr",
@@ -4308,7 +4322,7 @@ dependencies = [
[[package]] [[package]]
name = "nostr-connect" name = "nostr-connect"
version = "0.44.0" version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c" source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [ dependencies = [
"async-utility", "async-utility",
"futures-core", "futures-core",
@@ -4321,7 +4335,7 @@ dependencies = [
[[package]] [[package]]
name = "nostr-database" name = "nostr-database"
version = "0.44.0" version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c" source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [ dependencies = [
"btreecap", "btreecap",
"flatbuffers", "flatbuffers",
@@ -4331,7 +4345,7 @@ dependencies = [
[[package]] [[package]]
name = "nostr-gossip" name = "nostr-gossip"
version = "0.44.0" version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c" source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [ dependencies = [
"nostr", "nostr",
] ]
@@ -4339,7 +4353,7 @@ dependencies = [
[[package]] [[package]]
name = "nostr-gossip-memory" name = "nostr-gossip-memory"
version = "0.44.0" version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c" source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [ dependencies = [
"indexmap", "indexmap",
"lru", "lru",
@@ -4351,7 +4365,7 @@ dependencies = [
[[package]] [[package]]
name = "nostr-lmdb" name = "nostr-lmdb"
version = "0.44.0" version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c" source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [ dependencies = [
"async-utility", "async-utility",
"flume 0.12.0", "flume 0.12.0",
@@ -4365,7 +4379,7 @@ dependencies = [
[[package]] [[package]]
name = "nostr-memory" name = "nostr-memory"
version = "0.44.0" version = "0.44.0"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c" source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [ dependencies = [
"btreecap", "btreecap",
"nostr", "nostr",
@@ -4376,7 +4390,7 @@ dependencies = [
[[package]] [[package]]
name = "nostr-sdk" name = "nostr-sdk"
version = "0.44.1" version = "0.44.1"
source = "git+https://github.com/rust-nostr/nostr#79e28478c7d57f785a91002f01e66f242aff8f5c" source = "git+https://github.com/rust-nostr/nostr#19e6769b36f2c9c046a5da76a1ee380a2efb8026"
dependencies = [ dependencies = [
"async-utility", "async-utility",
"async-wsocket", "async-wsocket",
@@ -4717,9 +4731,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
[[package]] [[package]]
name = "ordered-float" name = "ordered-float"
version = "5.1.0" version = "5.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f4779c6901a562440c3786d08192c6fbda7c1c2060edd10006b05ee35d10f2d" checksum = "0218004a4aae742209bee9c3cef05672f6b2708be36a50add8eb613b1f2a4008"
dependencies = [ dependencies = [
"num-traits", "num-traits",
] ]
@@ -4850,7 +4864,7 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
[[package]] [[package]]
name = "perf" name = "perf"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"collections", "collections",
"serde", "serde",
@@ -5490,16 +5504,6 @@ dependencies = [
"crossbeam-utils", "crossbeam-utils",
] ]
[[package]]
name = "read-fonts"
version = "0.35.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6717cf23b488adf64b9d711329542ba34de147df262370221940dfabc2c91358"
dependencies = [
"bytemuck",
"font-types 0.10.1",
]
[[package]] [[package]]
name = "read-fonts" name = "read-fonts"
version = "0.37.0" version = "0.37.0"
@@ -5508,7 +5512,7 @@ checksum = "7b634fabf032fab15307ffd272149b622260f55974d9fad689292a5d33df02e5"
dependencies = [ dependencies = [
"bytemuck", "bytemuck",
"core_maths", "core_maths",
"font-types 0.11.1", "font-types",
] ]
[[package]] [[package]]
@@ -5572,7 +5576,7 @@ dependencies = [
[[package]] [[package]]
name = "refineable" name = "refineable"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"derive_refineable", "derive_refineable",
] ]
@@ -5671,7 +5675,7 @@ dependencies = [
[[package]] [[package]]
name = "reqwest_client" name = "reqwest_client"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"bytes", "bytes",
@@ -5692,12 +5696,15 @@ version = "0.45.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8928798c0a55e03c9ca6c4c6846f76377427d2c1e1f7e6de3c06ae57942df43" checksum = "a8928798c0a55e03c9ca6c4c6846f76377427d2c1e1f7e6de3c06ae57942df43"
dependencies = [ dependencies = [
"gif 0.13.3",
"image-webp",
"log", "log",
"pico-args", "pico-args",
"rgb", "rgb",
"svgtypes", "svgtypes",
"tiny-skia", "tiny-skia",
"usvg", "usvg",
"zune-jpeg 0.4.21",
] ]
[[package]] [[package]]
@@ -5726,7 +5733,7 @@ dependencies = [
[[package]] [[package]]
name = "rope" name = "rope"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"heapless", "heapless",
"log", "log",
@@ -5988,7 +5995,7 @@ dependencies = [
[[package]] [[package]]
name = "scheduler" name = "scheduler"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"async-task", "async-task",
"backtrace", "backtrace",
@@ -6337,9 +6344,9 @@ dependencies = [
[[package]] [[package]]
name = "simd-adler32" name = "simd-adler32"
version = "0.3.8" version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
[[package]] [[package]]
name = "simd_cesu8" name = "simd_cesu8"
@@ -6381,16 +6388,6 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e"
[[package]]
name = "skrifa"
version = "0.37.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c31071dedf532758ecf3fed987cdb4bd9509f900e026ab684b4ecb81ea49841"
dependencies = [
"bytemuck",
"read-fonts 0.35.0",
]
[[package]] [[package]]
name = "skrifa" name = "skrifa"
version = "0.40.0" version = "0.40.0"
@@ -6398,7 +6395,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fbdfe3d2475fbd7ddd1f3e5cf8288a30eb3e5f95832829570cd88115a7434ac" checksum = "7fbdfe3d2475fbd7ddd1f3e5cf8288a30eb3e5f95832829570cd88115a7434ac"
dependencies = [ dependencies = [
"bytemuck", "bytemuck",
"read-fonts 0.37.0", "read-fonts",
] ]
[[package]] [[package]]
@@ -6600,7 +6597,7 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]] [[package]]
name = "sum_tree" name = "sum_tree"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"heapless", "heapless",
"log", "log",
@@ -6611,15 +6608,15 @@ dependencies = [
[[package]] [[package]]
name = "sval" name = "sval"
version = "2.17.0" version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1aaf178a50bbdd86043fce9bf0a5867007d9b382db89d1c96ccae4601ff1ff9" checksum = "2eb9318255ebd817902d7e279d8f8e39b35b1b9954decd5eb9ea0e30e5fd2b6a"
[[package]] [[package]]
name = "sval_buffer" name = "sval_buffer"
version = "2.17.0" version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f89273e48f03807ebf51c4d81c52f28d35ffa18a593edf97e041b52de143df89" checksum = "12571299185e653fdb0fbfe36cd7f6529d39d4e747a60b15a3f34574b7b97c61"
dependencies = [ dependencies = [
"sval", "sval",
"sval_ref", "sval_ref",
@@ -6627,18 +6624,18 @@ dependencies = [
[[package]] [[package]]
name = "sval_dynamic" name = "sval_dynamic"
version = "2.17.0" version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0430f4e18e7eba21a49d10d25a8dec3ce0e044af40b162347e99a8e3c3ced864" checksum = "39526f24e997706c0de7f03fb7371f7f5638b66a504ded508e20ad173d0a3677"
dependencies = [ dependencies = [
"sval", "sval",
] ]
[[package]] [[package]]
name = "sval_fmt" name = "sval_fmt"
version = "2.17.0" version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "835f51b9d7331b9d7fc48fc716c02306fa88c4a076b1573531910c91a525882d" checksum = "933dd3bb26965d682280fcc49400ac2a05036f4ee1e6dbd61bf8402d5a5c3a54"
dependencies = [ dependencies = [
"itoa", "itoa",
"ryu", "ryu",
@@ -6647,9 +6644,9 @@ dependencies = [
[[package]] [[package]]
name = "sval_json" name = "sval_json"
version = "2.17.0" version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13cbfe3ef406ee2366e7e8ab3678426362085fa9eaedf28cb878a967159dced3" checksum = "a0cda08f6d5c9948024a6551077557b1fdcc3880ff2f20ae839667d2ec2d87ed"
dependencies = [ dependencies = [
"itoa", "itoa",
"ryu", "ryu",
@@ -6658,9 +6655,9 @@ dependencies = [
[[package]] [[package]]
name = "sval_nested" name = "sval_nested"
version = "2.17.0" version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b20358af4af787c34321a86618c3cae12eabdd0e9df22cd9dd2c6834214c518" checksum = "88d49d5e6c1f9fd0e53515819b03a97ca4eb1bff5c8ee097c43391c09ecfb19f"
dependencies = [ dependencies = [
"sval", "sval",
"sval_buffer", "sval_buffer",
@@ -6669,18 +6666,18 @@ dependencies = [
[[package]] [[package]]
name = "sval_ref" name = "sval_ref"
version = "2.17.0" version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb5e500f8eb2efa84f75e7090f7fc43f621b9f8b6cde571c635b3855f97b332a" checksum = "14f876c5a78405375b4e19cbb9554407513b59c93dea12dc6a4af4e1d30899ca"
dependencies = [ dependencies = [
"sval", "sval",
] ]
[[package]] [[package]]
name = "sval_serde" name = "sval_serde"
version = "2.17.0" version = "2.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca2032ae39b11dcc6c18d5fbc50a661ea191cac96484c59ccf49b002261ca2c1" checksum = "5f9ccd3b7f7200239a655e517dd3fd48d960b9111ad24bd6a5e055bef17607c7"
dependencies = [ dependencies = [
"serde_core", "serde_core",
"sval", "sval",
@@ -6705,11 +6702,11 @@ dependencies = [
[[package]] [[package]]
name = "swash" name = "swash"
version = "0.2.6" version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47846491253e976bdd07d0f9cc24b7daf24720d11309302ccbbc6e6b6e53550a" checksum = "842f3cd369c2ba38966204f983eaa5e54a8e84a7d7159ed36ade2b6c335aae64"
dependencies = [ dependencies = [
"skrifa 0.37.0", "skrifa",
"yazi", "yazi",
"zeno", "zeno",
] ]
@@ -6935,7 +6932,7 @@ dependencies = [
"half", "half",
"quick-error", "quick-error",
"weezl", "weezl",
"zune-jpeg", "zune-jpeg 0.5.15",
] ]
[[package]] [[package]]
@@ -7451,9 +7448,9 @@ checksum = "383ad40bb927465ec0ce7720e033cb4ca06912855fc35db31b5755d0de75b1ee"
[[package]] [[package]]
name = "unicode-segmentation" name = "unicode-segmentation"
version = "1.13.1" version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da36089a805484bcccfffe0739803392c8298778a2d2f09febf76fac5ad9025b" checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c"
[[package]] [[package]]
name = "unicode-vo" name = "unicode-vo"
@@ -7485,9 +7482,9 @@ dependencies = [
[[package]] [[package]]
name = "universal-time" name = "universal-time"
version = "0.2.0" version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b35da41b69caac5d25e3eba1ca0b7e9ac859a23af369d2e36a37dbb7defbc93" checksum = "f942cacf37a673350e8f252dff4691fb8e525a5fff6e1f2c4b6c2f3b8349248d"
[[package]] [[package]]
name = "untrusted" name = "untrusted"
@@ -7562,7 +7559,7 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]] [[package]]
name = "util" name = "util"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-fs", "async-fs",
@@ -7601,7 +7598,7 @@ dependencies = [
[[package]] [[package]]
name = "util_macros" name = "util_macros"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"perf", "perf",
"quote", "quote",
@@ -7610,9 +7607,9 @@ dependencies = [
[[package]] [[package]]
name = "uuid" name = "uuid"
version = "1.22.0" version = "1.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9"
dependencies = [ dependencies = [
"getrandom 0.4.2", "getrandom 0.4.2",
"js-sys", "js-sys",
@@ -7757,9 +7754,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
[[package]] [[package]]
name = "wasm-bindgen" name = "wasm-bindgen"
version = "0.2.114" version = "0.2.115"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" checksum = "6523d69017b7633e396a89c5efab138161ed5aafcbc8d3e5c5a42ae38f50495a"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"once_cell", "once_cell",
@@ -7770,23 +7767,19 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-futures" name = "wasm-bindgen-futures"
version = "0.4.64" version = "0.4.65"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" checksum = "2d1faf851e778dfa54db7cd438b70758eba9755cb47403f3496edd7c8fc212f0"
dependencies = [ dependencies = [
"cfg-if",
"futures-util",
"js-sys", "js-sys",
"once_cell",
"wasm-bindgen", "wasm-bindgen",
"web-sys",
] ]
[[package]] [[package]]
name = "wasm-bindgen-macro" name = "wasm-bindgen-macro"
version = "0.2.114" version = "0.2.115"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" checksum = "4e3a6c758eb2f701ed3d052ff5737f5bfe6614326ea7f3bbac7156192dc32e67"
dependencies = [ dependencies = [
"quote", "quote",
"wasm-bindgen-macro-support", "wasm-bindgen-macro-support",
@@ -7794,9 +7787,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-macro-support" name = "wasm-bindgen-macro-support"
version = "0.2.114" version = "0.2.115"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" checksum = "921de2737904886b52bcbb237301552d05969a6f9c40d261eb0533c8b055fedf"
dependencies = [ dependencies = [
"bumpalo", "bumpalo",
"proc-macro2", "proc-macro2",
@@ -7807,9 +7800,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-shared" name = "wasm-bindgen-shared"
version = "0.2.114" version = "0.2.115"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" checksum = "a93e946af942b58934c604527337bad9ae33ba1d5c6900bbb41c2c07c2364a93"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
@@ -7973,9 +7966,9 @@ dependencies = [
[[package]] [[package]]
name = "web-sys" name = "web-sys"
version = "0.3.91" version = "0.3.92"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" checksum = "84cde8507f4d7cfcb1185b8cb5890c494ffea65edbe1ba82cfd63661c805ed94"
dependencies = [ dependencies = [
"js-sys", "js-sys",
"wasm-bindgen", "wasm-bindgen",
@@ -8063,7 +8056,7 @@ dependencies = [
"hashbrown 0.16.1", "hashbrown 0.16.1",
"js-sys", "js-sys",
"log", "log",
"naga 29.0.0 (git+https://github.com/zed-industries/wgpu.git?branch=v29)", "naga 29.0.0",
"parking_lot", "parking_lot",
"portable-atomic", "portable-atomic",
"profiling", "profiling",
@@ -8093,7 +8086,7 @@ dependencies = [
"hashbrown 0.16.1", "hashbrown 0.16.1",
"indexmap", "indexmap",
"log", "log",
"naga 29.0.0 (git+https://github.com/zed-industries/wgpu.git?branch=v29)", "naga 29.0.0",
"once_cell", "once_cell",
"parking_lot", "parking_lot",
"portable-atomic", "portable-atomic",
@@ -8158,7 +8151,7 @@ dependencies = [
"libc", "libc",
"libloading", "libloading",
"log", "log",
"naga 29.0.0 (git+https://github.com/zed-industries/wgpu.git?branch=v29)", "naga 29.0.0",
"ndk-sys", "ndk-sys",
"objc2", "objc2",
"objc2-core-foundation", "objc2-core-foundation",
@@ -8191,7 +8184,7 @@ name = "wgpu-naga-bridge"
version = "29.0.0" version = "29.0.0"
source = "git+https://github.com/zed-industries/wgpu.git?branch=v29#a466bc382ea747f8e1ac810efdb6dcd49a514575" source = "git+https://github.com/zed-industries/wgpu.git?branch=v29#a466bc382ea747f8e1ac810efdb6dcd49a514575"
dependencies = [ dependencies = [
"naga 29.0.0 (git+https://github.com/zed-industries/wgpu.git?branch=v29)", "naga 29.0.0",
"wgpu-types", "wgpu-types",
] ]
@@ -9422,7 +9415,7 @@ dependencies = [
[[package]] [[package]]
name = "zlog" name = "zlog"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"chrono", "chrono",
@@ -9439,7 +9432,7 @@ checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
[[package]] [[package]]
name = "ztracing" name = "ztracing"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
dependencies = [ dependencies = [
"tracing", "tracing",
"tracing-subscriber", "tracing-subscriber",
@@ -9450,7 +9443,13 @@ dependencies = [
[[package]] [[package]]
name = "ztracing_macro" name = "ztracing_macro"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/zed-industries/zed#103fa371562e86af63204df8cf7bf35559ada0d4" source = "git+https://github.com/zed-industries/zed#fa2790d52a527834591a031e7f19f6e0ca103228"
[[package]]
name = "zune-core"
version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a"
[[package]] [[package]]
name = "zune-core" name = "zune-core"
@@ -9469,11 +9468,20 @@ dependencies = [
[[package]] [[package]]
name = "zune-jpeg" name = "zune-jpeg"
version = "0.5.14" version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b7a1c0af6e5d8d1363f4994b7a091ccf963d8b694f7da5b0b9cceb82da2c0a6" checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713"
dependencies = [ dependencies = [
"zune-core", "zune-core 0.4.12",
]
[[package]]
name = "zune-jpeg"
version = "0.5.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296"
dependencies = [
"zune-core 0.5.1",
] ]
[[package]] [[package]]

View File

@@ -1,5 +1,5 @@
use std::cmp::Reverse; use std::cmp::Reverse;
use std::collections::{HashMap, HashSet}; use std::collections::{BTreeSet, HashMap, HashSet};
use std::hash::{DefaultHasher, Hash, Hasher}; use std::hash::{DefaultHasher, Hash, Hasher};
use std::sync::Arc; use std::sync::Arc;
use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::atomic::{AtomicBool, Ordering};
@@ -55,7 +55,24 @@ enum Signal {
/// Eose received from relay pool /// Eose received from relay pool
Eose, Eose,
/// An error occurred /// An error occurred
Error(SharedString), Error(FailedMessage),
}
impl Signal {
pub fn message(gift_wrap: EventId, rumor: UnsignedEvent) -> Self {
Self::Message(NewMessage::new(gift_wrap, rumor))
}
pub fn eose() -> Self {
Self::Eose
}
pub fn error<T>(event: &Event, reason: T) -> Self
where
T: Into<SharedString>,
{
Self::Error(FailedMessage::new(event, reason))
}
} }
/// Chat Registry /// Chat Registry
@@ -64,6 +81,9 @@ pub struct ChatRegistry {
/// Chat rooms /// Chat rooms
rooms: Vec<Entity<Room>>, rooms: Vec<Entity<Room>>,
/// Events that failed to unwrap for any reason
trashes: Entity<BTreeSet<FailedMessage>>,
/// Tracking events seen on which relays in the current session /// Tracking events seen on which relays in the current session
seens: Arc<RwLock<HashMap<EventId, HashSet<RelayUrl>>>>, seens: Arc<RwLock<HashMap<EventId, HashSet<RelayUrl>>>>,
@@ -128,6 +148,7 @@ impl ChatRegistry {
Self { Self {
rooms: vec![], rooms: vec![],
trashes: cx.new(|_| BTreeSet::default()),
seens: Arc::new(RwLock::new(HashMap::default())), seens: Arc::new(RwLock::new(HashMap::default())),
tracking_flag: Arc::new(AtomicBool::new(false)), tracking_flag: Arc::new(AtomicBool::new(false)),
signal_rx: rx, signal_rx: rx,
@@ -144,6 +165,7 @@ impl ChatRegistry {
let signer = nostr.read(cx).signer(); let signer = nostr.read(cx).signer();
let status = self.tracking_flag.clone(); let status = self.tracking_flag.clone();
let seens = self.seens.clone(); let seens = self.seens.clone();
let trashes = self.trashes.downgrade();
let initialized_at = Timestamp::now(); let initialized_at = Timestamp::now();
let sub_id1 = SubscriptionId::new(DEVICE_GIFTWRAP); let sub_id1 = SubscriptionId::new(DEVICE_GIFTWRAP);
@@ -185,28 +207,30 @@ impl ChatRegistry {
match extract_rumor(&client, &signer, event.as_ref()).await { match extract_rumor(&client, &signer, event.as_ref()).await {
Ok(rumor) => { Ok(rumor) => {
if rumor.tags.is_empty() { if rumor.tags.is_empty() {
let error: SharedString = "No room for message".into(); let signal =
tx.send_async(Signal::Error(error)).await?; Signal::error(event.as_ref(), "Recipient is missing");
tx.send_async(signal).await?;
continue;
} }
if rumor.created_at >= initialized_at { if rumor.created_at >= initialized_at {
let new_message = NewMessage::new(event.id, rumor); let signal = Signal::message(event.id, rumor);
let signal = Signal::Message(new_message);
tx.send_async(signal).await?; tx.send_async(signal).await?;
} else { } else {
status.store(true, Ordering::Release); status.store(true, Ordering::Release);
} }
} }
Err(e) => { Err(e) => {
let error: SharedString = format!("Failed to unwrap: {e}").into(); let reason = format!("Failed to extract rumor: {e}");
tx.send_async(Signal::Error(error)).await?; let signal = Signal::error(event.as_ref(), reason);
tx.send_async(signal).await?;
} }
} }
} }
RelayMessage::EndOfStoredEvents(id) => { RelayMessage::EndOfStoredEvents(id) => {
if id.as_ref() == &sub_id1 || id.as_ref() == &sub_id2 { if id.as_ref() == &sub_id1 || id.as_ref() == &sub_id2 {
tx.send_async(Signal::Eose).await?; tx.send_async(Signal::eose()).await?;
} }
} }
_ => {} _ => {}
@@ -229,9 +253,10 @@ impl ChatRegistry {
this.get_rooms(cx); this.get_rooms(cx);
})?; })?;
} }
Signal::Error(error) => { Signal::Error(trash) => {
this.update(cx, |_this, cx| { trashes.update(cx, |this, cx| {
cx.emit(ChatEvent::Error(error)); this.insert(trash);
cx.notify();
})?; })?;
} }
}; };
@@ -685,8 +710,8 @@ async fn extract_rumor(
gift_wrap: &Event, gift_wrap: &Event,
) -> Result<UnsignedEvent, Error> { ) -> Result<UnsignedEvent, Error> {
// Try to get cached rumor first // Try to get cached rumor first
if let Ok(event) = get_rumor(client, gift_wrap.id).await { if let Ok(rumor) = get_rumor(client, gift_wrap.id).await {
return Ok(event); return Ok(rumor);
} }
// Try to unwrap with the available signer // Try to unwrap with the available signer

View File

@@ -2,6 +2,7 @@ use std::hash::Hash;
use std::ops::Range; use std::ops::Range;
use common::{EventUtils, NostrParser}; use common::{EventUtils, NostrParser};
use gpui::SharedString;
use nostr_sdk::prelude::*; use nostr_sdk::prelude::*;
/// New message. /// New message.
@@ -24,6 +25,25 @@ impl NewMessage {
} }
} }
/// Trash message.
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub struct FailedMessage {
pub raw_event: String,
pub reason: SharedString,
}
impl FailedMessage {
pub fn new<T>(event: &Event, reason: T) -> Self
where
T: Into<SharedString>,
{
Self {
raw_event: event.as_json(),
reason: reason.into(),
}
}
}
/// Message. /// Message.
#[derive(Debug, Clone, Hash, PartialEq, Eq)] #[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub enum Message { pub enum Message {