From 3911dac19853b0ff1b7a80082f05c272419719c7 Mon Sep 17 00:00:00 2001 From: sunny-g Date: Tue, 1 Jun 2021 23:43:58 -0500 Subject: [PATCH] schedule doc example type clarity --- rustler/src/schedule.rs | 14 +++++++------- .../native/rustler_test/src/test_schedule.rs | 11 +++++++++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/rustler/src/schedule.rs b/rustler/src/schedule.rs index db0b59d7..1ab4f048 100644 --- a/rustler/src/schedule.rs +++ b/rustler/src/schedule.rs @@ -20,7 +20,7 @@ pub fn consume_timeslice(env: Env, percent: i32) -> bool { #[macro_export] macro_rules! reschedule { ($flags:expr, $($arg:expr),*) => ( - rustler::schedule::Schedule::from(($flags, $($arg,)*)) + rustler::Schedule::from(($flags, $($arg,)*)) ) } @@ -40,16 +40,16 @@ macro_rules! reschedule { /// ## Example: /// ```rust,ignore /// #[nif] -/// fn factorial(input: u32, result: Option) -> Schedule { +/// fn factorial(input: u8, result: Option) -> Schedule> { /// let result = result.unwrap_or(1); /// if input == 0 { /// Schedule::Return(result) /// } else { -/// // alternatively `Schedule::Continue2(std::marker::PhantomData, SchedulerFlags::Normal, input - 1, result * input)` -/// // alternatively `Schedule::continue2(SchedulerFlags::Normal, input - 1, result * input)` -/// // alternatively `Schedule::from((SchedulerFlags::Normal, input - 1, result * input))` -/// // alternatively `(SchedulerFlags::Normal, input - 1, result * input).into()` -/// reschedule!(SchedulerFlags::Normal, input - 1, result * input) +/// // alternatively `Schedule::Continue2(std::marker::PhantomData, SchedulerFlags::Normal, input - 1, Some(result * input as u32))` +/// // or `Schedule::continue2(SchedulerFlags::Normal, input - 1, Some(result * input as u32))` +/// // or `Schedule::from((SchedulerFlags::Normal, input - 1, Some(result * input as u32)))` +/// // or `(SchedulerFlags::Normal, input - 1, Some(result * input as u32)).into()` +/// reschedule!(SchedulerFlags::Normal, input - 1, Some(result * input as u32)) /// } /// } /// ``` diff --git a/rustler_tests/native/rustler_test/src/test_schedule.rs b/rustler_tests/native/rustler_test/src/test_schedule.rs index 17e90c8d..bfb1701e 100644 --- a/rustler_tests/native/rustler_test/src/test_schedule.rs +++ b/rustler_tests/native/rustler_test/src/test_schedule.rs @@ -1,11 +1,18 @@ use rustler::{reschedule, Schedule, SchedulerFlags}; #[rustler::nif] -fn scheduled_fac<'a>(input: u32, result: Option) -> Schedule { +fn scheduled_fac<'a>( + input: u8, + result: Option, +) -> Schedule> { let result = result.unwrap_or(1); if input == 0 { Schedule::Return(result) } else { - reschedule!(SchedulerFlags::Normal, input - 1, result * input) + reschedule!( + SchedulerFlags::Normal, + input - 1, + Some(result * input as u32) + ) } }