Don't require an explicit return type in the task macro

This commit is contained in:
TechnoPorg committed 2026-01-28 08:52:52 +01:00
1 parent 098b2711d8
commit 1c9034de71
42 files changed
+51 -75

No files matched your search

-1
View File
@@ -2,7 +2,6 @@
use crate::builder::IsUnitType;
use crate::runner::DagRunner;
use crate::task::Task;
use crate::types::TaskHandle;
// Initialize tracing subscriber for tests (idempotent)
-1
View File
@@ -2,7 +2,6 @@
use crate::deps::DepsTuple;
use crate::runner::DagRunner;
use crate::task::Task;
use crate::types::{NodeId, TaskHandle};
// Test task for dependency testing
-1
View File
@@ -3,7 +3,6 @@
#![allow(dead_code)] // Test helpers generate unused code via macro
use crate::extract::ExtractInput;
use crate::task::Task;
use std::any::Any;
use std::sync::Arc;
+2
View File
@@ -774,6 +774,8 @@
#![allow(private_bounds, private_interfaces)]
extern crate self as dagx;
// Module declarations
mod builder;
pub mod cycle_prevention;
-1
View File
@@ -3,7 +3,6 @@
use std::sync::Arc;
use crate::node::{ExecutableNode, TypedNode};
use crate::task::Task;
use crate::types::NodeId;
// Simple test task
+3 -3
View File
@@ -235,7 +235,7 @@ impl DagRunner {
/// # Parameters
///
/// - `spawner`: A function that spawns futures on the async runtime
/// and returns a handle to the task. This is the only way to run tasks on separate threads. Examples:
/// and returns a handle to the task. This is the only way to run tasks on separate threads. Examples:
/// - Tokio: `|fut| { tokio::spawn(fut).map(Result::unwrap) }`
/// - Smol: `|fut| { smol::spawn(fut) }`
/// - Async-std: `|fut| { async_std::task::spawn(fut) }`
@@ -374,7 +374,7 @@ impl DagRunner {
let dependencies: Vec<_> = edges[&node_id]
.iter()
.flat_map(|dep| outputs.get(dep))
.map(|value| value.clone())
.cloned()
.collect();
// Execute inline with panic handling.
@@ -437,7 +437,7 @@ impl DagRunner {
let dependencies: Vec<_> = edges[&node_id]
.iter()
.flat_map(|dep| outputs.get(dep))
.map(|value| value.clone())
.cloned()
.collect();
// Spawn the task using the provided spawner
-1
View File
@@ -4,7 +4,6 @@
use crate::error::DagError;
use crate::runner::DagRunner;
use crate::task::Task;
use crate::types::TaskHandle;
use futures::FutureExt;
use std::collections::HashMap;
+4 -11
View File
@@ -2,7 +2,6 @@
use crate::error::DagError;
use crate::runner::DagRunner;
use crate::task::Task;
use crate::types::TaskHandle;
use futures::FutureExt;
@@ -161,17 +160,11 @@ async fn test_concurrent_run_protection() {
assert!(result1.is_ok() != result2.is_ok());
// The error should be about concurrent execution
if result1.is_err() {
assert!(matches!(
result1.unwrap_err(),
crate::error::DagError::ConcurrentExecution
));
if let Err(e) = result1 {
assert!(matches!(e, crate::error::DagError::ConcurrentExecution));
}
if result2.is_err() {
assert!(matches!(
result2.unwrap_err(),
crate::error::DagError::ConcurrentExecution
));
if let Err(e) = result2 {
assert!(matches!(e, crate::error::DagError::ConcurrentExecution));
}
}
-1
View File
@@ -167,7 +167,6 @@ async fn test_task_fn_with_option_type() {
#[tokio::test]
async fn test_task_fn_explicit_trait_call() {
// Test explicit Task trait method call to cover line 121
use crate::task::Task;
let task = task_fn(|x: i32| async move { x * 3 });
+1 -2
View File
@@ -2,8 +2,7 @@
//!
//! These tests ensure we hit line 71 in the From<TaskBuilder> implementation
use crate::types::TaskHandle;
use crate::{task, DagRunner, Task};
use crate::{task, DagRunner, TaskHandle};
use futures::FutureExt;
#[tokio::test]
-1
View File
@@ -1,6 +1,5 @@
//! Unit tests for types module
use crate::task::Task;
use crate::types::{NodeId, TaskHandle};
use std::marker::PhantomData;