fix(rust): compile jobs without remote feature (#4103)

## What

Move typed job decode error construction behind a feature-aware helper
so builds without the `remote` feature do not reference `Error::Http`.
Local decode failures continue to surface as `Error::Runtime`, while
remote builds retain HTTP errors with request IDs.

Add a regression test for local typed-result decode failures.

Closes #4096.

## Testing

- `cargo fmt --all -- --check`
- `cargo check -p lancedb --no-default-features`
- `cargo test -p lancedb --no-default-features
job::tests::local_typed_result_decode_errors_are_runtime_errors`

Co-authored-by: Xuanwo <github@xuanwo.io>
This commit is contained in:
Shiduo Li
2026-10-24 14:47:41 +08:00
committed by GitHub
co-authored by Xuanwo
parent 2c9f2e75a0
commit 0ea932dafd
+8
View File
@@ -636,6 +636,14 @@ mod tests {
use super::*;
#[test]
fn local_typed_result_decode_errors_are_runtime_errors() {
assert!(matches!(
TerminalResult::local(Value::Null).decode::<u64>(),
Err(Error::Runtime { .. })
));
}
#[tokio::test]
async fn mapped_spawned_job_reuses_outcome() {
let job = Job::spawned(tokio::spawn(async { Ok(41_u64) })).map(|value| value + 1);