From 5a64613727884352cf8904b37dac5edd5d1d6bab Mon Sep 17 00:00:00 2001 From: Dominik Werder Date: Tue, 3 Jun 2025 12:28:46 +0200 Subject: [PATCH] Update deps, error type --- .cargo/cargo-lock | 157 +++++++++--------- Cargo.toml | 4 - crates/daqbuf-redis/Cargo.toml | 2 +- crates/daqbuffer/Cargo.toml | 3 +- crates/daqbuffer/src/fetch.rs | 33 ++-- crates/daqbufp2/src/client.rs | 2 +- crates/dbconn/Cargo.toml | 2 +- crates/dbconn/src/channelconfig.rs | 38 ++--- crates/dbconn/src/dbconn.rs | 27 ++- crates/disk/Cargo.toml | 1 + crates/disk/src/channelconfig.rs | 15 +- crates/disk/src/dataopen.rs | 5 +- crates/disk/src/eventchunker.rs | 44 +++-- crates/httpclient/Cargo.toml | 2 +- crates/httpret/Cargo.toml | 2 +- crates/httpret/src/api1.rs | 2 +- crates/httpret/src/api4/databuffer_tools.rs | 25 ++- crates/httpret/src/api4/eventdata.rs | 17 +- crates/httpret/src/api4/events.rs | 24 ++- crates/nodenet/Cargo.toml | 2 +- crates/nodenet/src/channelconfig.rs | 40 +++-- crates/nodenet/src/configquorum.rs | 30 ++-- crates/nodenet/src/conn.rs | 37 ++--- crates/scyllaconn/Cargo.toml | 2 +- .../scyllaconn/src/events2/mergertchained.rs | 33 ++-- crates/streamio/Cargo.toml | 3 +- crates/streamio/src/tcprawclient.rs | 2 +- 27 files changed, 268 insertions(+), 286 deletions(-) diff --git a/.cargo/cargo-lock b/.cargo/cargo-lock index 23e8ee8..9e147ca 100644 --- a/.cargo/cargo-lock +++ b/.cargo/cargo-lock @@ -115,12 +115,12 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "6680de5231bd6ee4c6191b8a1325daa282b415391ec9d3a37bd34f2060dc73fa" dependencies = [ "anstyle", - "once_cell", + "once_cell_polyfill", "windows-sys 0.59.0", ] @@ -221,18 +221,18 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "autoerr" -version = "0.0.3" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "980f0fd954ab9bdb2440aac932951f01455dff9cae664bdaca4d98aeb75b1116" +checksum = "be8cd7d4dbe9d1f58cb80acbda5d1dccd35701f4ef5cfa37492b153e49dedc51" dependencies = [ "autoerr-impl", ] [[package]] name = "autoerr-impl" -version = "0.0.3" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "745e965b2d8ddc2d25707087e42b550f67f9391366802185b0a3d8ac4a4511f7" +checksum = "7166e8bc0a13b079544c28a8144e006c560b52ff836b453240ae1b251b8cb57d" dependencies = [ "proc-macro2", "quote", @@ -325,9 +325,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.23" +version = "1.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4ac86a9e5bc1e2b3449ab9d7d3a6a405e3d1bb28d7b9be8614f55846ae3766" +checksum = "d0fc897dc1e865cc67c0e05a836d9d3f1df3cbe442aa4a9473b18e12624a4951" dependencies = [ "shlex", ] @@ -394,9 +394,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.38" +version = "4.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000" +checksum = "fd60e63e9be68e5fb56422e397cf9baddded06dae1d2e523401542383bc72a9f" dependencies = [ "clap_builder", "clap_derive", @@ -404,9 +404,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.38" +version = "4.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120" +checksum = "89cc6392a1f72bbeb820d71f32108f61fdaf18bc526e1d23954168a67759ef51" dependencies = [ "anstream", "anstyle", @@ -484,9 +484,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" dependencies = [ "core-foundation-sys", "libc", @@ -604,10 +604,11 @@ dependencies = [ [[package]] name = "daqbuf-err" -version = "0.0.6" +version = "0.0.7" dependencies = [ "anyhow", "async-channel 2.3.1", + "autoerr", "backtrace", "chrono", "http", @@ -616,7 +617,6 @@ dependencies = [ "serde", "serde_cbor", "serde_json", - "thiserror 0.0.1", "url", ] @@ -775,7 +775,6 @@ dependencies = [ "serde", "serde_cbor", "serde_json", - "thiserror 0.0.1", "typetag", ] @@ -811,8 +810,9 @@ dependencies = [ [[package]] name = "daqretrieve" -version = "0.5.5-aa.13" +version = "0.5.5-aa.14" dependencies = [ + "autoerr", "bytes", "chrono", "clap", @@ -928,6 +928,7 @@ dependencies = [ "arrayref", "async-channel 1.9.0", "async-stream", + "autoerr", "byteorder", "bytes", "chrono", @@ -1078,6 +1079,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -1320,6 +1327,11 @@ name = "hashbrown" version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] [[package]] name = "heapless" @@ -1516,12 +1528,13 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.11" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" +checksum = "b1c293b6b3d21eca78250dc7dbebd6b9210ec5530e038cbfe0661b5c47ab06e8" dependencies = [ "bytes", "futures-channel", + "futures-core", "futures-util", "http", "http-body", @@ -1607,9 +1620,9 @@ checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", @@ -1623,9 +1636,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" @@ -1772,9 +1785,9 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -1834,13 +1847,13 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1954,6 +1967,12 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + [[package]] name = "openssl-probe" version = "0.1.6" @@ -1974,9 +1993,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -1984,9 +2003,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", @@ -2481,9 +2500,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ryu" @@ -2517,26 +2536,22 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scylla" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd81aa1c6de67ed43f78a64aa233c547c569979922ab2e6c6d58730f0d53b651" +checksum = "1f4d5b7fe3cb3e140d374238f5f916eb810053562287a01d66ac685e305c166f" dependencies = [ "arc-swap", "async-trait", - "byteorder", "bytes", "chrono", "dashmap", "futures", "hashbrown 0.14.5", "itertools 0.14.0", - "lazy_static", - "lz4_flex", "rand 0.9.1", "rand_pcg", "scylla-cql", "smallvec", - "snap", "socket2", "thiserror 2.0.12", "tokio", @@ -2546,11 +2561,10 @@ dependencies = [ [[package]] name = "scylla-cql" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae84054fed47b0a7e757d66aeb4574a4ca9696bf68c25ed6325b0f198c15795b" +checksum = "507db4914c625c86d32c5c00ed1add75eaf966a2d4ba9772b601b2563701df58" dependencies = [ - "async-trait", "byteorder", "bytes", "chrono", @@ -2567,9 +2581,9 @@ dependencies = [ [[package]] name = "scylla-macros" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67d343ebea5cc079bfa89ca4b231b432207c3748baaa3b00e5c238e7644e838" +checksum = "8efb4b519ab70556c8d3adfd4f192c635d0c7c72d4f125d2b79713742c98f39d" dependencies = [ "darling", "proc-macro2", @@ -2591,9 +2605,13 @@ dependencies = [ "daqbuf-series", "daqbuf-streams", "futures-util", + "hashbrown 0.15.3", "pin-project", "scylla", + "serde", + "serde_json", "taskrun", + "time", ] [[package]] @@ -2750,9 +2768,9 @@ checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "socket2" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2784,7 +2802,6 @@ name = "streamio" version = "0.0.2" dependencies = [ "arrayref", - "async-channel 1.9.0", "autoerr", "byteorder", "bytes", @@ -2872,14 +2889,6 @@ dependencies = [ "tracing-subscriber", ] -[[package]] -name = "thiserror" -version = "0.0.1" -source = "git+https://github.com/dominikwerder/thiserror.git?branch=cstm#8d3fc303d3741068c05ce2b533c058fa44bf9a1d" -dependencies = [ - "thiserror-impl 1.0.61", -] - [[package]] name = "thiserror" version = "1.0.69" @@ -2898,16 +2907,6 @@ dependencies = [ "thiserror-impl 2.0.12", ] -[[package]] -name = "thiserror-impl" -version = "1.0.61" -source = "git+https://github.com/dominikwerder/thiserror.git?branch=cstm#8d3fc303d3741068c05ce2b533c058fa44bf9a1d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "thiserror-impl" version = "1.0.69" @@ -3007,9 +3006,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.0" +version = "1.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" +checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" dependencies = [ "backtrace", "bytes", @@ -3278,11 +3277,13 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" dependencies = [ "getrandom 0.3.3", + "js-sys", + "wasm-bindgen", ] [[package]] @@ -3477,9 +3478,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.61.1" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46ec44dc15085cea82cf9c78f85a9114c463a369786585ad2882d1ff0b0acf40" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", @@ -3518,18 +3519,18 @@ checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" [[package]] name = "windows-result" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b895b5356fc36103d0f64dd1e94dfa7ac5633f1c9dd6e80fe9ec4adef69e09d" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ "windows-link", ] [[package]] name = "windows-strings" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a7ab927b2637c19b3dbe0965e75d8f2d30bdd697a1516191cad2ec4df8fb28a" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ "windows-link", ] diff --git a/Cargo.toml b/Cargo.toml index 56a35b1..78ae4ab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,3 @@ debug-assertions = false lto = "off" codegen-units = 32 incremental = true - -[patch.crates-io] -#tokio = { git = "https://github.com/dominikwerder/tokio", rev = "995221d8" } -thiserror = { git = "https://github.com/dominikwerder/thiserror.git", branch = "cstm" } diff --git a/crates/daqbuf-redis/Cargo.toml b/crates/daqbuf-redis/Cargo.toml index 9e5b9b4..ec9242d 100644 --- a/crates/daqbuf-redis/Cargo.toml +++ b/crates/daqbuf-redis/Cargo.toml @@ -7,6 +7,6 @@ edition = "2024" [dependencies] serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -autoerr = "0.0.3" +autoerr = "0.0" taskrun = { path = "../taskrun" } redis = { version = "0.31.0", features = [] } diff --git a/crates/daqbuffer/Cargo.toml b/crates/daqbuffer/Cargo.toml index 115a643..42b51e4 100644 --- a/crates/daqbuffer/Cargo.toml +++ b/crates/daqbuffer/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "daqretrieve" -version = "0.5.5-aa.13" +version = "0.5.5-aa.14" authors = ["Dominik Werder "] edition = "2024" @@ -13,6 +13,7 @@ serde_json = "1.0" serde_yaml = "0.9.34" chrono = "0.4.39" url = "2.5.4" +autoerr = "0.0.5" clap = { version = "4.5.28", features = ["derive", "cargo"] } daqbuf-err = { path = "../../../daqbuf-err" } taskrun = { path = "../taskrun" } diff --git a/crates/daqbuffer/src/fetch.rs b/crates/daqbuffer/src/fetch.rs index aae7f08..7b4bd14 100644 --- a/crates/daqbuffer/src/fetch.rs +++ b/crates/daqbuffer/src/fetch.rs @@ -1,32 +1,31 @@ -use daqbuf_err::thiserror; -use daqbuf_err::ThisError; -use futures_util::future; use futures_util::StreamExt; -use http::header; +use futures_util::future; use http::Method; +use http::header; +use httpclient::IncomingStream; use httpclient::body_empty; use httpclient::connect_client; use httpclient::http; use httpclient::http::StatusCode; use httpclient::hyper::Request; -use httpclient::IncomingStream; -use netpod::log::*; +use netpod::APP_CBOR_FRAMED; use netpod::ScalarType; use netpod::Shape; -use netpod::APP_CBOR_FRAMED; +use netpod::log::*; use streams::cbor_stream::FramedBytesToChannelEventsStream; use url::Url; -#[derive(Debug, ThisError)] -#[cstm(name = "DataFetch")] -pub enum Error { - Url(#[from] url::ParseError), - NoHostname, - HttpBody(#[from] http::Error), - HttpClient(#[from] httpclient::Error), - Hyper(#[from] httpclient::hyper::Error), - RequestFailed(String), -} +autoerr::create_error_v1!( + name(Error, "DataFetch"), + enum variants { + Url(#[from] url::ParseError), + NoHostname, + HttpBody(#[from] http::Error), + HttpClient(#[from] httpclient::Error), + Hyper(#[from] httpclient::hyper::Error), + RequestFailed(String), + }, +); pub async fn fetch_cbor(url: &str, scalar_type: ScalarType, shape: Shape) -> Result<(), Error> { let url: Url = url.parse()?; diff --git a/crates/daqbufp2/src/client.rs b/crates/daqbufp2/src/client.rs index 16f8525..7714c84 100644 --- a/crates/daqbufp2/src/client.rs +++ b/crates/daqbufp2/src/client.rs @@ -136,7 +136,7 @@ pub async fn get_binned( "get_cached_0 DONE total download {} MB throughput {:5} kB/s bin_count {}", ntot / 1024 / 1024, throughput, - bin_count, + bin_count ); Ok(()) } diff --git a/crates/dbconn/Cargo.toml b/crates/dbconn/Cargo.toml index 927aae9..5e73bca 100644 --- a/crates/dbconn/Cargo.toml +++ b/crates/dbconn/Cargo.toml @@ -20,7 +20,7 @@ pin-project = "1" async-channel = "1.9.0" chrono = "0.4.39" regex = "1.11.1" -autoerr = "0.0.3" +autoerr = "0.0.5" daqbuf-err = { path = "../../../daqbuf-err" } netpod = { path = "../../../daqbuf-netpod", package = "daqbuf-netpod" } parse = { path = "../../../daqbuf-parse", package = "daqbuf-parse" } diff --git a/crates/dbconn/src/channelconfig.rs b/crates/dbconn/src/channelconfig.rs index e977dc4..08dfe61 100644 --- a/crates/dbconn/src/channelconfig.rs +++ b/crates/dbconn/src/channelconfig.rs @@ -1,31 +1,29 @@ +use autoerr::dbgdisplay::Dbg; use chrono::DateTime; use chrono::Utc; -use daqbuf_err as err; -use err::thiserror; -use err::ThisError; -use netpod::log::*; -use netpod::range::evrange::NanoRange; use netpod::ChConf; use netpod::ScalarType; use netpod::SeriesKind; use netpod::SfDbChannel; use netpod::Shape; use netpod::TsMs; +use netpod::log::*; +use netpod::range::evrange::NanoRange; use std::time::Duration; use tokio_postgres::Client; -#[derive(Debug, ThisError)] -#[cstm(name = "DbChannelConfig")] -pub enum Error { - Pg(#[from] tokio_postgres::Error), - #[error("NotFound({0}, {1})")] - NotFound(SfDbChannel, NanoRange), - SeriesNotFound(String, u64), - BadScalarType(i32), - BadShape(Vec), - BadKind(i16), - NoInput, -} +autoerr::create_error_v1!( + name(Error, "DbChannelConfig"), + enum variants { + Pg(#[from] tokio_postgres::Error), + NotFound(SfDbChannel, NanoRange), + SeriesNotFound(String, u64), + BadScalarType(i32), + BadShape(Dbg>), + BadKind(i16), + NoInput, + }, +); /// It is an unsolved question as to how we want to uniquely address channels. /// Currently, the usual (backend, channelname) works in 99% of the cases, but the edge-cases @@ -67,7 +65,7 @@ pub(super) async fn chconf_best_matching_for_name_and_range( let series = series as u64; let _scalar_type = ScalarType::from_scylla_i32(scalar_type).map_err(|_| Error::BadScalarType(scalar_type))?; - let _shape = Shape::from_scylla_shape_dims(&shape_dims).map_err(|_| Error::BadShape(shape_dims))?; + let _shape = Shape::from_scylla_shape_dims(&shape_dims).map_err(|_| Error::BadShape(Dbg(shape_dims)))?; let tsms = tsc.signed_duration_since(DateTime::UNIX_EPOCH).num_milliseconds() as u64; let ts = TsMs::from_ms_u64(tsms); rows.push((ts, series)); @@ -88,7 +86,7 @@ pub(super) async fn chconf_best_matching_for_name_and_range( let series = series as u64; let kind = channel.kind(); let scalar_type = ScalarType::from_scylla_i32(scalar_type).map_err(|_| Error::BadScalarType(scalar_type))?; - let shape = Shape::from_scylla_shape_dims(&shape_dims).map_err(|_| Error::BadShape(shape_dims))?; + let shape = Shape::from_scylla_shape_dims(&shape_dims).map_err(|_| Error::BadShape(Dbg(shape_dims)))?; let ret = ChConf::new(channel.backend(), series, kind, scalar_type, shape, channel.name()); Ok(ret) } @@ -217,7 +215,7 @@ pub(super) async fn chconf_for_series(backend: &str, series: u64, pg: &Client) - ScalarType::from_dtype_index(scalar_type as _).map_err(|_| Error::BadScalarType(scalar_type))?; // TODO can I get a slice from psql driver? let shape = row.get::<_, Vec>(2); - let shape = Shape::from_scylla_shape_dims(&shape).map_err(|_| Error::BadShape(shape))?; + let shape = Shape::from_scylla_shape_dims(&shape).map_err(|_| Error::BadShape(Dbg(shape)))?; let kind: i16 = row.get(3); let kind = SeriesKind::from_db_i16(kind).map_err(|_| Error::BadKind(kind))?; let ret = ChConf::new(backend, series, kind, scalar_type, shape, name); diff --git a/crates/dbconn/src/dbconn.rs b/crates/dbconn/src/dbconn.rs index 4a3d2cf..87341d0 100644 --- a/crates/dbconn/src/dbconn.rs +++ b/crates/dbconn/src/dbconn.rs @@ -5,24 +5,22 @@ pub mod search; pub mod worker; pub mod pg { - pub use tokio_postgres::types::Type; pub use tokio_postgres::Client; pub use tokio_postgres::Error; pub use tokio_postgres::NoTls; pub use tokio_postgres::Statement; + pub use tokio_postgres::types::Type; } use daqbuf_err as err; -use err::anyhow; -use err::thiserror; use err::Error; use err::Res2; -use err::ThisError; -use netpod::log::*; +use err::anyhow; use netpod::Database; use netpod::NodeConfigCached; use netpod::SfDbChannel; use netpod::TableSizes; +use netpod::log::*; use pg::Client as PgClient; use pg::NoTls; use serde::Serialize; @@ -195,12 +193,13 @@ pub async fn find_series_sf_databuffer(channel: &SfDbChannel, pgclient: Arc for ConfigError { fn from(value: ConfigParseError) -> Self { diff --git a/crates/disk/src/dataopen.rs b/crates/disk/src/dataopen.rs index abe6648..549d219 100644 --- a/crates/disk/src/dataopen.rs +++ b/crates/disk/src/dataopen.rs @@ -91,7 +91,10 @@ async fn position_file( let gg = match gg { Ok(x) => x, Err(e) => { - error!("can not position file for range {range:?} expand_right {expand_right:?} buflen {buflen}", buflen = buf.len()); + error!( + "can not position file for range {range:?} expand_right {expand_right:?} buflen {}", + buf.len() + ); return Err(e); } }; diff --git a/crates/disk/src/eventchunker.rs b/crates/disk/src/eventchunker.rs index 020241c..2783dd3 100644 --- a/crates/disk/src/eventchunker.rs +++ b/crates/disk/src/eventchunker.rs @@ -1,9 +1,7 @@ use bytes::Buf; use bytes::BytesMut; use daqbuf_err as err; -use err::thiserror; use err::Error; -use err::ThisError; use futures_util::Stream; use futures_util::StreamExt; use items_0::streamitem::LogItem; @@ -23,8 +21,6 @@ use netpod::ScalarType; use netpod::SfChFetchInfo; use netpod::Shape; use parse::channelconfig::CompressionMethod; -use serde::Deserialize; -use serde::Serialize; use std::collections::VecDeque; use std::io::Cursor; use std::path::PathBuf; @@ -38,26 +34,26 @@ use streams::needminbuffer::NeedMinBuffer; #[allow(unused)] macro_rules! trace_parse_buf { ($($arg:tt)*) => ( if false { trace!($($arg)*); }) } -#[derive(Debug, ThisError, Serialize, Deserialize)] -#[cstm(name = "DatabufferDataParse")] -pub enum DataParseError { - DataFrameLengthMismatch, - FileHeaderTooShort, - BadVersionTag, - HeaderTooLarge, - Utf8Error, - EventTooShort, - #[error("EventTooLong({0}, {1})")] - EventTooLong(Shape, u32), - TooManyBeforeRange, - EventWithOptional, - BadTypeIndex, - WaveShapeWithoutEventArray, - ShapedWithoutDims, - TooManyDims, - UnknownCompression, - BadCompresionBlockSize, -} +autoerr::create_error_v1!( + name(DataParseError, "DatabufferDataParse"), + enum variants { + DataFrameLengthMismatch, + FileHeaderTooShort, + BadVersionTag, + HeaderTooLarge, + Utf8Error, + EventTooShort, + EventTooLong(Shape, u32), + TooManyBeforeRange, + EventWithOptional, + BadTypeIndex, + WaveShapeWithoutEventArray, + ShapedWithoutDims, + TooManyDims, + UnknownCompression, + BadCompresionBlockSize, + }, +); pub struct EventChunker { inp: NeedMinBuffer, diff --git a/crates/httpclient/Cargo.toml b/crates/httpclient/Cargo.toml index c97c8c9..b914181 100644 --- a/crates/httpclient/Cargo.toml +++ b/crates/httpclient/Cargo.toml @@ -19,7 +19,7 @@ hyper = { version = "1.6.0", features = ["http1", "http2", "client", "server"] } hyper-util = { version = "0.1.10", features = ["full"] } bytes = "1.10.0" async-channel = "1.9.0" -autoerr = "0.0.3" +autoerr = "0.0" daqbuf-err = { path = "../../../daqbuf-err" } netpod = { path = "../../../daqbuf-netpod", package = "daqbuf-netpod" } parse = { path = "../../../daqbuf-parse", package = "daqbuf-parse" } diff --git a/crates/httpret/Cargo.toml b/crates/httpret/Cargo.toml index fe90d62..26ec974 100644 --- a/crates/httpret/Cargo.toml +++ b/crates/httpret/Cargo.toml @@ -35,7 +35,7 @@ rand = "0.9.0" ciborium = "0.2.2" flate2 = "1" brotli = "8.0.1" -autoerr = "0.0.3" +autoerr = "0.0" daqbuf-err = { path = "../../../daqbuf-err" } netpod = { path = "../../../daqbuf-netpod", package = "daqbuf-netpod" } query = { path = "../../../daqbuf-query", package = "daqbuf-query" } diff --git a/crates/httpret/src/api1.rs b/crates/httpret/src/api1.rs index 5821b04..ad7b48c 100644 --- a/crates/httpret/src/api1.rs +++ b/crates/httpret/src/api1.rs @@ -623,7 +623,7 @@ impl DataApiPython3DataStream { b.be[i1], b.scalar_types[i1], b.shapes[i1], - b.comps[i1], + b.comps[i1] ); } // TODO emit warning when we use a different setting compared to channel config. diff --git a/crates/httpret/src/api4/databuffer_tools.rs b/crates/httpret/src/api4/databuffer_tools.rs index 075f1bb..d56d5a9 100644 --- a/crates/httpret/src/api4/databuffer_tools.rs +++ b/crates/httpret/src/api4/databuffer_tools.rs @@ -3,9 +3,7 @@ use async_channel::Receiver; use async_channel::Sender; use bytes::Bytes; use daqbuf_err as err; -use err::thiserror; use err::PublicError; -use err::ThisError; use err::ToPublicError; use futures_util::Stream; use futures_util::StreamExt; @@ -30,18 +28,17 @@ use std::task::Context; use std::task::Poll; use taskrun::tokio; -#[derive(Debug, ThisError)] -#[cstm(name = "ChannelFindActive")] -pub enum FindActiveError { - HttpBadAccept, - HttpBadUrl, - #[error("Error({0})")] - Error(Box), - #[error("UrlError({0})")] - UrlError(#[from] url::ParseError), - InternalError, - IO(#[from] std::io::Error), -} +autoerr::create_error_v1!( + name(FindActiveError, "ChannelFindActive"), + enum variants { + HttpBadAccept, + HttpBadUrl, + Error(Box), + UrlError(#[from] url::ParseError), + InternalError, + IO(#[from] std::io::Error), + }, +); impl ToPublicError for FindActiveError { fn to_public_error(&self) -> PublicError { diff --git a/crates/httpret/src/api4/eventdata.rs b/crates/httpret/src/api4/eventdata.rs index c3c9955..0f0c40b 100644 --- a/crates/httpret/src/api4/eventdata.rs +++ b/crates/httpret/src/api4/eventdata.rs @@ -2,9 +2,7 @@ use crate::response; use crate::ReqCtx; use crate::ServiceSharedResources; use daqbuf_err as err; -use err::thiserror; use err::PublicError; -use err::ThisError; use err::ToPublicError; use http::Method; use http::StatusCode; @@ -19,13 +17,14 @@ use netpod::NodeConfigCached; use std::sync::Arc; use streams::instrument::InstrumentStream; -#[derive(Debug, ThisError)] -#[cstm(name = "EventData")] -pub enum EventDataError { - QueryParse, - Error(Box), - InternalError, -} +autoerr::create_error_v1!( + name(EventDataError, "EventData"), + enum variants { + QueryParse, + Error(Box), + InternalError, + }, +); impl ToPublicError for EventDataError { fn to_public_error(&self) -> PublicError { diff --git a/crates/httpret/src/api4/events.rs b/crates/httpret/src/api4/events.rs index b037031..a03a7d4 100644 --- a/crates/httpret/src/api4/events.rs +++ b/crates/httpret/src/api4/events.rs @@ -4,10 +4,7 @@ use crate::requests::accepts_json_framed; use crate::requests::accepts_json_or_all; use crate::response; use crate::ServiceSharedResources; -use daqbuf_err as err; use dbconn::worker::PgQueue; -use err::thiserror; -use err::ThisError; use http::header::CONTENT_TYPE; use http::Method; use http::StatusCode; @@ -44,16 +41,17 @@ use streams::streamtimeout::StreamTimeout2; use tracing::Instrument; use tracing::Span; -#[derive(Debug, ThisError)] -#[cstm(name = "Api4Events")] -pub enum Error { - ChannelNotFound, - HttpLib(#[from] http::Error), - ChannelConfig(crate::channelconfig::Error), - Retrieval(#[from] crate::RetrievalError), - EventsCbor(#[from] streams::plaineventscbor::Error), - EventsJson(#[from] streams::plaineventsjson::Error), -} +autoerr::create_error_v1!( + name(Error, "Api4Events"), + enum variants { + ChannelNotFound, + HttpLib(#[from] http::Error), + ChannelConfig(crate::channelconfig::Error), + Retrieval(#[from] crate::RetrievalError), + EventsCbor(#[from] streams::plaineventscbor::Error), + EventsJson(#[from] streams::plaineventsjson::Error), + }, +); impl Error { pub fn user_message(&self) -> String { diff --git a/crates/nodenet/Cargo.toml b/crates/nodenet/Cargo.toml index 9a000d6..d776a43 100644 --- a/crates/nodenet/Cargo.toml +++ b/crates/nodenet/Cargo.toml @@ -17,7 +17,7 @@ byteorder = "1.5.0" futures-util = "0.3.31" tracing = "0.1.41" hex = "0.4.3" -autoerr = "0.0.3" +autoerr = "0.0" daqbuf-err = { path = "../../../daqbuf-err" } netpod = { path = "../../../daqbuf-netpod", package = "daqbuf-netpod" } query = { path = "../../../daqbuf-query", package = "daqbuf-query" } diff --git a/crates/nodenet/src/channelconfig.rs b/crates/nodenet/src/channelconfig.rs index 8425ceb..b0de257 100644 --- a/crates/nodenet/src/channelconfig.rs +++ b/crates/nodenet/src/channelconfig.rs @@ -1,7 +1,4 @@ -use daqbuf_err as err; use dbconn::worker::PgQueue; -use err::thiserror; -use err::ThisError; use httpclient::url::Url; use netpod::log::*; use netpod::range::evrange::NanoRange; @@ -22,24 +19,25 @@ use netpod::Shape; use netpod::APP_JSON; use serde::Serialize; -#[derive(Debug, ThisError)] -#[cstm(name = "ChannelConfigNode")] -pub enum Error { - NotFoundChannel(SfDbChannel), - ChannelConfig(dbconn::channelconfig::Error), - DbWorker(#[from] dbconn::worker::Error), - DiskConfig(#[from] disk::channelconfig::ConfigError), - BackendConfigError, - BadTestSetup, - HttpReqError, - HttpClient(#[from] httpclient::Error), - ConfigParse(#[from] disk::parse::channelconfig::ConfigParseError), - JsonParse(#[from] serde_json::Error), - SearchWithGivenSeries, - AsyncSend, - AsyncRecv, - Todo, -} +autoerr::create_error_v1!( + name(Error, "ChannelConfigNode"), + enum variants { + NotFoundChannel(SfDbChannel), + ChannelConfig(dbconn::channelconfig::Error), + DbWorker(#[from] dbconn::worker::Error), + DiskConfig(#[from] disk::channelconfig::ConfigError), + BackendConfigError, + BadTestSetup, + HttpReqError, + HttpClient(#[from] httpclient::Error), + ConfigParse(#[from] disk::parse::channelconfig::ConfigParseError), + JsonParse(#[from] serde_json::Error), + SearchWithGivenSeries, + AsyncSend, + AsyncRecv, + Todo, + }, +); impl From for Error { fn from(_value: async_channel::RecvError) -> Self { diff --git a/crates/nodenet/src/configquorum.rs b/crates/nodenet/src/configquorum.rs index 46b448a..80257d1 100644 --- a/crates/nodenet/src/configquorum.rs +++ b/crates/nodenet/src/configquorum.rs @@ -1,8 +1,5 @@ use crate::channelconfig::http_get_channel_config; -use daqbuf_err as err; use dbconn::worker::PgQueue; -use err::thiserror; -use err::ThisError; use netpod::log::*; use netpod::range::evrange::SeriesRange; use netpod::ChConf; @@ -18,19 +15,20 @@ use std::collections::BTreeMap; use std::time::Duration; use taskrun::tokio; -#[derive(Debug, ThisError)] -#[cstm(name = "ConfigQuorum")] -pub enum Error { - NotFound(SfDbChannel), - MissingTimeRange, - Timeout, - ChannelConfig(crate::channelconfig::Error), - ExpectSfDatabufferBackend, - UnsupportedBackend, - BadTimeRange, - DbWorker(#[from] dbconn::worker::Error), - FindChannel(#[from] dbconn::FindChannelError), -} +autoerr::create_error_v1!( + name(Error, "ConfigQuorum"), + enum variants { + NotFound(SfDbChannel), + MissingTimeRange, + Timeout, + ChannelConfig(crate::channelconfig::Error), + ExpectSfDatabufferBackend, + UnsupportedBackend, + BadTimeRange, + DbWorker(#[from] dbconn::worker::Error), + FindChannel(#[from] dbconn::FindChannelError), + }, +); impl From for Error { fn from(value: crate::channelconfig::Error) -> Self { diff --git a/crates/nodenet/src/conn.rs b/crates/nodenet/src/conn.rs index 7da06a4..e71cd9a 100644 --- a/crates/nodenet/src/conn.rs +++ b/crates/nodenet/src/conn.rs @@ -1,8 +1,6 @@ use crate::scylla::scylla_channel_event_stream; use bytes::Bytes; use daqbuf_err as err; -use err::thiserror; -use err::ThisError; use futures_util::Stream; use futures_util::StreamExt; use futures_util::TryStreamExt; @@ -41,23 +39,24 @@ use tracing::Instrument; #[cfg(test)] mod test; -#[derive(Debug, ThisError)] -#[cstm(name = "NodenetConn")] -pub enum Error { - BadQuery, - Scylla(#[from] crate::scylla::Error), - Error(#[from] err::Error), - Io(#[from] std::io::Error), - Items(#[from] items_2::Error), - NotAvailable, - DebugTest, - Generator(#[from] streams::generators::Error), - Framable(#[from] items_2::framable::Error), - Frame(#[from] items_2::frame::Error), - InMem(#[from] streams::frames::inmem::Error), - FramedStream(#[from] streams::frames::Error), - Netpod(#[from] netpod::Error), -} +autoerr::create_error_v1!( + name(Error, "NodenetConn"), + enum variants { + BadQuery, + Scylla(#[from] crate::scylla::Error), + Error(#[from] err::Error), + Io(#[from] std::io::Error), + Items(#[from] items_2::Error), + NotAvailable, + DebugTest, + Generator(#[from] streams::generators::Error), + Framable(#[from] items_2::framable::Error), + Frame(#[from] items_2::frame::Error), + InMem(#[from] streams::frames::inmem::Error), + FramedStream(#[from] streams::frames::Error), + Netpod(#[from] netpod::Error), + }, +); pub async fn events_service(ncc: NodeConfigCached) -> Result<(), Error> { let scyqueue = err::todoval(); diff --git a/crates/scyllaconn/Cargo.toml b/crates/scyllaconn/Cargo.toml index 0b89e33..e52d2f2 100644 --- a/crates/scyllaconn/Cargo.toml +++ b/crates/scyllaconn/Cargo.toml @@ -13,7 +13,7 @@ serde = { version = "1", features = ["derive"] } serde_json = "1" time = { version = "0.3.41", features = ["parsing", "formatting", "macros"] } hashbrown = "0.15.3" -autoerr = "0.0.3" +autoerr = "0.0" daqbuf-err = { path = "../../../daqbuf-err" } netpod = { path = "../../../daqbuf-netpod", package = "daqbuf-netpod" } query = { path = "../../../daqbuf-query", package = "daqbuf-query" } diff --git a/crates/scyllaconn/src/events2/mergertchained.rs b/crates/scyllaconn/src/events2/mergertchained.rs index 1793cf4..52e47ce 100644 --- a/crates/scyllaconn/src/events2/mergertchained.rs +++ b/crates/scyllaconn/src/events2/mergertchained.rs @@ -5,23 +5,21 @@ use crate::events2::onebeforeandbulk; use crate::range::ScyllaSeriesRange; use crate::worker::ScyllaQueue; use daqbuf_err as err; -use err::thiserror; -use err::ThisError; use futures_util::Future; use futures_util::FutureExt; use futures_util::Stream; use futures_util::StreamExt; +use items_0::WithLen; use items_0::merge::DrainIntoNewResult; use items_0::merge::MergeableTy; -use items_0::WithLen; use items_2::channelevents::ChannelEvents; +use netpod::ChConf; +use netpod::TsNano; use netpod::log::*; use netpod::range::evrange::NanoRange; use netpod::range::evrange::SeriesRange; use netpod::stream_impl_tracer::StreamImplTracer; use netpod::ttl::RetentionTime; -use netpod::ChConf; -use netpod::TsNano; use std::collections::VecDeque; use std::pin::Pin; use std::task::Context; @@ -51,17 +49,18 @@ macro_rules! tracer_loop_enter { }; } -#[derive(Debug, ThisError)] -#[cstm(name = "EventsMergeRt")] -pub enum Error { - Input(#[from] crate::events2::onebeforeandbulk::Error), - Events(#[from] crate::events2::events::Error), - Logic, - OrderMin, - OrderMax, - LimitPoll, - LimitLoop, -} +autoerr::create_error_v1!( + name(Error, "EventsMergeRt"), + enum variants { + Input(#[from] crate::events2::onebeforeandbulk::Error), + Events(#[from] crate::events2::events::Error), + Logic, + OrderMin, + OrderMax, + LimitPoll, + LimitLoop, + }, +); #[allow(unused)] enum Resolvable @@ -339,7 +338,7 @@ impl MergeRtsChained { fn push_out_one_before(&mut self) { if let Some(buf) = self.buf_before.take() { - trace_fetch!("push_out_one_before len {len:?}", len = buf.len()); + trace_fetch!("push_out_one_before len {:?}", buf.len()); if buf.len() != 0 { self.out.push_back(buf); } diff --git a/crates/streamio/Cargo.toml b/crates/streamio/Cargo.toml index a7cb34c..de39c04 100644 --- a/crates/streamio/Cargo.toml +++ b/crates/streamio/Cargo.toml @@ -18,9 +18,8 @@ bytes = "1.10" arrayref = "0.3.9" crc32fast = "1.4.2" byteorder = "1.5.0" -async-channel = "1.9.0" rand_xoshiro = "0.7.0" -autoerr = "0.0.3" +autoerr = "0.0" chrono = { version = "0.4.39", features = ["serde"] } netpod = { path = "../../../daqbuf-netpod", package = "daqbuf-netpod" } query = { path = "../../../daqbuf-query", package = "daqbuf-query" } diff --git a/crates/streamio/src/tcprawclient.rs b/crates/streamio/src/tcprawclient.rs index c4048d0..2a9050c 100644 --- a/crates/streamio/src/tcprawclient.rs +++ b/crates/streamio/src/tcprawclient.rs @@ -42,7 +42,7 @@ pub async fn x_processed_event_blobs_stream_from_node_tcp( node: Node, ) -> Result> + Send>>, Error> { let addr = format!("{}:{}", node.host, node.port_raw); - debug!("x_processed_event_blobs_stream_from_node to: {addr}",); + debug!("x_processed_event_blobs_stream_from_node to: {addr}"); let frame1 = make_node_command_frame(subq.clone())?; let net = TcpStream::connect(addr.clone()).await?; let (netin, mut netout) = net.into_split();