Skip to content

Instantly share code, notes, and snippets.

@harudagondi
Created September 9, 2022 07:26
Show Gist options
  • Save harudagondi/4ca499a1646122f346f9772ac78ec2e9 to your computer and use it in GitHub Desktop.
Save harudagondi/4ca499a1646122f346f9772ac78ec2e9 to your computer and use it in GitHub Desktop.
Error thrown by rhai + fundsp
cargo : Checking fundsp-lang v0.1.0 (C:\<path to>\rust\fundsp-lang)
At line:1 char:1
+ cargo check > error.txt 2>&1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( Checking fu...st\fundsp-lang):String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
error[E0277]: `Locked<rhai::types::interner::StringsInterner<'static>>` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Locked<rhai::types::interner::StringsInterner<'static>>` cannot be shared
between threads safely
|
= help: within `rhai::NativeCallContext<'_>`, the trait `Sync` is not implemented for
`Locked<rhai::types::interner::StringsInterner<'static>>`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `(dyn ModuleResolver + 'static)` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn ModuleResolver + 'static)` cannot be shared between threads safely
|
= help: the trait `Sync` is not implemented for `(dyn ModuleResolver + 'static)`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because of the requirements on the impl of `Sync` for `Unique<(dyn ModuleResolver + 'static)>`
= note: required because it appears within the type `Box<(dyn ModuleResolver + 'static)>`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `(dyn for<'r> Fn(&'r str) + 'static)` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn for<'r> Fn(&'r str) + 'static)` cannot be shared between threads safely
|
= help: the trait `Sync` is not implemented for `(dyn for<'r> Fn(&'r str) + 'static)`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because of the requirements on the impl of `Sync` for `Unique<(dyn for<'r> Fn(&'r str) + 'static)>`
= note: required because it appears within the type `Box<(dyn for<'r> Fn(&'r str) + 'static)>`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `(dyn for<'r, 's> Fn(&'r str, Option<&'s str>, Position) + 'static)` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn for<'r, 's> Fn(&'r str, Option<&'s str>, Position) + 'static)` cannot
be shared between threads safely
|
= help: the trait `Sync` is not implemented for `(dyn for<'r, 's> Fn(&'r str, Option<&'s str>, Position) + 'static)`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because of the requirements on the impl of `Sync` for `Unique<(dyn for<'r, 's> Fn(&'r str, Option<&'s str>,
Position) + 'static)>`
= note: required because it appears within the type `Box<(dyn for<'r, 's> Fn(&'r str, Option<&'s str>, Position) + 'static)>`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `Rc<Locked<rhai::Dynamic>>` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<Locked<rhai::Dynamic>>` cannot be shared between threads safely
|
= help: within `rhai::NativeCallContext<'_>`, the trait `Sync` is not implemented for `Rc<Locked<rhai::Dynamic>>`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because it appears within the type `rhai::types::dynamic::Union`
= note: required because it appears within the type `rhai::Dynamic`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `Rc<StaticModuleResolver>` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<StaticModuleResolver>` cannot be shared between threads safely
|
= help: within `rhai::NativeCallContext<'_>`, the trait `Sync` is not implemented for `Rc<StaticModuleResolver>`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because it appears within the type `Option<Rc<StaticModuleResolver>>`
= note: required because it appears within the type `rhai::eval::global_state::GlobalRuntimeState<'_>`
= note: required because it appears within the type `&rhai::eval::global_state::GlobalRuntimeState<'_>`
= note: required because it appears within the type `Option<&rhai::eval::global_state::GlobalRuntimeState<'_>>`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `Rc<Locked<BTreeMap<ImmutableString, rhai::Dynamic>>>` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<Locked<BTreeMap<ImmutableString, rhai::Dynamic>>>` cannot be shared
between threads safely
|
= help: within `rhai::NativeCallContext<'_>`, the trait `Sync` is not implemented for `Rc<Locked<BTreeMap<ImmutableString,
rhai::Dynamic>>>`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because it appears within the type `Option<Rc<Locked<BTreeMap<ImmutableString, rhai::Dynamic>>>>`
= note: required because it appears within the type `rhai::eval::global_state::GlobalRuntimeState<'_>`
= note: required because it appears within the type `&rhai::eval::global_state::GlobalRuntimeState<'_>`
= note: required because it appears within the type `Option<&rhai::eval::global_state::GlobalRuntimeState<'_>>`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `Rc<rhai::Module>` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<rhai::Module>` cannot be shared between threads safely
|
= help: within `[Rc<rhai::Module>; 3]`, the trait `Sync` is not implemented for `Rc<rhai::Module>`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because it appears within the type `[Rc<rhai::Module>; 3]`
= note: required because of the requirements on the impl of `Sync` for `smallvec::SmallVecData<[Rc<rhai::Module>; 3]>`
= note: required because it appears within the type `smallvec::SmallVec<[Rc<rhai::Module>; 3]>`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7> Fn(bool, VarDefInfo<'r>, EvalContext<'s, 't0, 't1, 't2, 't3, 't4,
't5, 't6, 't7>) -> Result<bool, Box<EvalAltResult>> + 'static)` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7> Fn(bool,
VarDefInfo<'r>, EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>) -> Result<bool, Box<EvalAltResult>> + 'static)` cannot be shared
between threads safely
|
= help: the trait `Sync` is not implemented for `(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7> Fn(bool, VarDefInfo<'r>,
EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>) -> Result<bool, Box<EvalAltResult>> + 'static)`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because of the requirements on the impl of `Sync` for `Unique<(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6,
't7> Fn(bool, VarDefInfo<'r>, EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>) -> Result<bool, Box<EvalAltResult>> + 'static)>`
= note: required because it appears within the type `Box<(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7> Fn(bool,
VarDefInfo<'r>, EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>) -> Result<bool, Box<EvalAltResult>> + 'static)>`
= note: required because it appears within the type `Option<Box<(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7> Fn(bool,
VarDefInfo<'r>, EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>) -> Result<bool, Box<EvalAltResult>> + 'static)>>`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7> Fn(&'r str, usize, EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5,
't6, 't7>) -> Result<Option<rhai::Dynamic>, Box<EvalAltResult>> + 'static)` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7> Fn(&'r str, usize,
EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>) -> Result<Option<rhai::Dynamic>, Box<EvalAltResult>> + 'static)` cannot be
shared between threads safely
|
= help: the trait `Sync` is not implemented for `(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7> Fn(&'r str, usize,
EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>) -> Result<Option<rhai::Dynamic>, Box<EvalAltResult>> + 'static)`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because of the requirements on the impl of `Sync` for `Unique<(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6,
't7> Fn(&'r str, usize, EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>) -> Result<Option<rhai::Dynamic>, Box<EvalAltResult>> +
'static)>`
= note: required because it appears within the type `Box<(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7> Fn(&'r str, usize,
EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>) -> Result<Option<rhai::Dynamic>, Box<EvalAltResult>> + 'static)>`
= note: required because it appears within the type `Option<Box<(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7> Fn(&'r str,
usize, EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>) -> Result<Option<rhai::Dynamic>, Box<EvalAltResult>> + 'static)>>`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `(dyn for<'r> Fn(rhai::tokenizer::Token, Position, &'r rhai::tokenizer::TokenizeState) -> rhai::tokenizer::Token +
'static)` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn for<'r> Fn(rhai::tokenizer::Token, Position, &'r
rhai::tokenizer::TokenizeState) -> rhai::tokenizer::Token + 'static)` cannot be shared between threads safely
|
= help: the trait `Sync` is not implemented for `(dyn for<'r> Fn(rhai::tokenizer::Token, Position, &'r
rhai::tokenizer::TokenizeState) -> rhai::tokenizer::Token + 'static)`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because of the requirements on the impl of `Sync` for `Unique<(dyn for<'r> Fn(rhai::tokenizer::Token, Position, &'r
rhai::tokenizer::TokenizeState) -> rhai::tokenizer::Token + 'static)>`
= note: required because it appears within the type `Box<(dyn for<'r> Fn(rhai::tokenizer::Token, Position, &'r
rhai::tokenizer::TokenizeState) -> rhai::tokenizer::Token + 'static)>`
= note: required because it appears within the type `Option<Box<(dyn for<'r> Fn(rhai::tokenizer::Token, Position, &'r
rhai::tokenizer::TokenizeState) -> rhai::tokenizer::Token + 'static)>>`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `(dyn Fn(u64) -> Option<rhai::Dynamic> + 'static)` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn Fn(u64) -> Option<rhai::Dynamic> + 'static)` cannot be shared between
threads safely
|
= help: the trait `Sync` is not implemented for `(dyn Fn(u64) -> Option<rhai::Dynamic> + 'static)`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because of the requirements on the impl of `Sync` for `Unique<(dyn Fn(u64) -> Option<rhai::Dynamic> + 'static)>`
= note: required because it appears within the type `Box<(dyn Fn(u64) -> Option<rhai::Dynamic> + 'static)>`
= note: required because it appears within the type `Option<Box<(dyn Fn(u64) -> Option<rhai::Dynamic> + 'static)>>`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `Rc<smartstring::SmartString<smartstring::config::LazyCompact>>` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<smartstring::SmartString<smartstring::config::LazyCompact>>` cannot be
shared between threads safely
|
= help: within `rhai::NativeCallContext<'_>`, the trait `Sync` is not implemented for
`Rc<smartstring::SmartString<smartstring::config::LazyCompact>>`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because it appears within the type `ImmutableString`
= note: required because it appears within the type `rhai::types::dynamic::Union`
= note: required because it appears within the type `rhai::Dynamic`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `Rc<(dyn Fn(rhai::Dynamic) -> Box<(dyn std::iter::Iterator<Item = rhai::Dynamic> + 'static)> + 'static)>` cannot be shared
between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<(dyn Fn(rhai::Dynamic) -> Box<(dyn std::iter::Iterator<Item =
rhai::Dynamic> + 'static)> + 'static)>` cannot be shared between threads safely
|
= help: the trait `Sync` is not implemented for `Rc<(dyn Fn(rhai::Dynamic) -> Box<(dyn std::iter::Iterator<Item = rhai::Dynamic> +
'static)> + 'static)>`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because of the requirements on the impl of `Sync` for
`alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Owned, std::any::TypeId, Rc<(dyn Fn(rhai::Dynamic) ->
Box<(dyn std::iter::Iterator<Item = rhai::Dynamic> + 'static)> + 'static)>, alloc::collections::btree::node::marker::LeafOrInternal>`
= note: required because it appears within the type
`Option<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Owned, std::any::TypeId, Rc<(dyn
Fn(rhai::Dynamic) -> Box<(dyn std::iter::Iterator<Item = rhai::Dynamic> + 'static)> + 'static)>,
alloc::collections::btree::node::marker::LeafOrInternal>>`
= note: required because it appears within the type `BTreeMap<std::any::TypeId, Rc<(dyn Fn(rhai::Dynamic) -> Box<(dyn
std::iter::Iterator<Item = rhai::Dynamic> + 'static)> + 'static)>>`
= note: required because it appears within the type `rhai::Module`
= note: required because it appears within the type `&rhai::Module`
= note: required because it appears within the type `[&rhai::Module]`
= note: required because it appears within the type `&[&rhai::Module]`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `(dyn for<'r, 's> Fn(&'r [ImmutableString], &'s str) -> Result<Option<ImmutableString>, ParseError> + 'static)` cannot be
shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn for<'r, 's> Fn(&'r [ImmutableString], &'s str) ->
Result<Option<ImmutableString>, ParseError> + 'static)` cannot be shared between threads safely
|
= help: the trait `Sync` is not implemented for `(dyn for<'r, 's> Fn(&'r [ImmutableString], &'s str) ->
Result<Option<ImmutableString>, ParseError> + 'static)`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because of the requirements on the impl of `Sync` for `Unique<(dyn for<'r, 's> Fn(&'r [ImmutableString], &'s str)
-> Result<Option<ImmutableString>, ParseError> + 'static)>`
= note: required because it appears within the type `Box<(dyn for<'r, 's> Fn(&'r [ImmutableString], &'s str) ->
Result<Option<ImmutableString>, ParseError> + 'static)>`
= note: required because it appears within the type `rhai::api::custom_syntax::CustomSyntax`
= note: required because of the requirements on the impl of `Sync` for
`alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Owned,
smartstring::SmartString<smartstring::config::LazyCompact>, rhai::api::custom_syntax::CustomSyntax,
alloc::collections::btree::node::marker::LeafOrInternal>`
= note: required because it appears within the type
`Option<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Owned,
smartstring::SmartString<smartstring::config::LazyCompact>, rhai::api::custom_syntax::CustomSyntax,
alloc::collections::btree::node::marker::LeafOrInternal>>`
= note: required because it appears within the type `BTreeMap<smartstring::SmartString<smartstring::config::LazyCompact>,
rhai::api::custom_syntax::CustomSyntax>`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9> Fn(&'r mut EvalContext<'s, 't0, 't1, 't2, 't3, 't4,
't5, 't6, 't7>, &'t8 [Expression<'t9>]) -> Result<rhai::Dynamic, Box<EvalAltResult>> + 'static)` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9> Fn(&'r
mut EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>, &'t8 [Expression<'t9>]) -> Result<rhai::Dynamic, Box<EvalAltResult>> +
'static)` cannot be shared between threads safely
|
= help: the trait `Sync` is not implemented for `(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9> Fn(&'r mut
EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>, &'t8 [Expression<'t9>]) -> Result<rhai::Dynamic, Box<EvalAltResult>> + 'static)`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because of the requirements on the impl of `Sync` for `Unique<(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6,
't7, 't8, 't9> Fn(&'r mut EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>, &'t8 [Expression<'t9>]) -> Result<rhai::Dynamic,
Box<EvalAltResult>> + 'static)>`
= note: required because it appears within the type `Box<(dyn for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9> Fn(&'r
mut EvalContext<'s, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7>, &'t8 [Expression<'t9>]) -> Result<rhai::Dynamic, Box<EvalAltResult>> +
'static)>`
= note: required because it appears within the type `rhai::api::custom_syntax::CustomSyntax`
= note: required because of the requirements on the impl of `Sync` for
`alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Owned,
smartstring::SmartString<smartstring::config::LazyCompact>, rhai::api::custom_syntax::CustomSyntax,
alloc::collections::btree::node::marker::LeafOrInternal>`
= note: required because it appears within the type
`Option<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Owned,
smartstring::SmartString<smartstring::config::LazyCompact>, rhai::api::custom_syntax::CustomSyntax,
alloc::collections::btree::node::marker::LeafOrInternal>>`
= note: required because it appears within the type `BTreeMap<smartstring::SmartString<smartstring::config::LazyCompact>,
rhai::api::custom_syntax::CustomSyntax>`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `(dyn rhai::types::dynamic::Variant + 'static)` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn rhai::types::dynamic::Variant + 'static)` cannot be shared between
threads safely
|
= help: the trait `Sync` is not implemented for `(dyn rhai::types::dynamic::Variant + 'static)`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because of the requirements on the impl of `Sync` for `Unique<(dyn rhai::types::dynamic::Variant + 'static)>`
= note: required because it appears within the type `Box<(dyn rhai::types::dynamic::Variant + 'static)>`
= note: required because of the requirements on the impl of `Sync` for `Unique<Box<(dyn rhai::types::dynamic::Variant + 'static)>>`
= note: required because it appears within the type `Box<Box<(dyn rhai::types::dynamic::Variant + 'static)>>`
= note: required because it appears within the type `rhai::types::dynamic::Union`
= note: required because it appears within the type `rhai::Dynamic`
= note: required because it appears within the type `Engine`
= note: required because it appears within the type `&Engine`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `Rc<(dyn for<'r, 's, 't0> Fn(rhai::NativeCallContext<'r>, &'s mut [&'t0 mut rhai::Dynamic]) -> Result<rhai::Dynamic,
Box<EvalAltResult>> + 'static)>` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<(dyn for<'r, 's, 't0> Fn(rhai::NativeCallContext<'r>, &'s mut [&'t0 mut
rhai::Dynamic]) -> Result<rhai::Dynamic, Box<EvalAltResult>> + 'static)>` cannot be shared between threads safely
|
= help: within `CallableFunction`, the trait `Sync` is not implemented for `Rc<(dyn for<'r, 's, 't0> Fn(rhai::NativeCallContext<'r>,
&'s mut [&'t0 mut rhai::Dynamic]) -> Result<rhai::Dynamic, Box<EvalAltResult>> + 'static)>`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because it appears within the type `CallableFunction`
= note: required because of the requirements on the impl of `Sync` for
`alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Owned, u64, CallableFunction,
alloc::collections::btree::node::marker::LeafOrInternal>`
= note: required because it appears within the type
`Option<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Owned, u64, CallableFunction,
alloc::collections::btree::node::marker::LeafOrInternal>>`
= note: required because it appears within the type `BTreeMap<u64, CallableFunction>`
= note: required because it appears within the type `rhai::Module`
= note: required because it appears within the type `&rhai::Module`
= note: required because it appears within the type `[&rhai::Module]`
= note: required because it appears within the type `&[&rhai::Module]`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `Rc<(dyn rhai::plugin::PluginFunction + 'static)>` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<(dyn rhai::plugin::PluginFunction + 'static)>` cannot be shared between
threads safely
|
= help: within `CallableFunction`, the trait `Sync` is not implemented for `Rc<(dyn rhai::plugin::PluginFunction + 'static)>`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because it appears within the type `CallableFunction`
= note: required because of the requirements on the impl of `Sync` for
`alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Owned, u64, CallableFunction,
alloc::collections::btree::node::marker::LeafOrInternal>`
= note: required because it appears within the type
`Option<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Owned, u64, CallableFunction,
alloc::collections::btree::node::marker::LeafOrInternal>>`
= note: required because it appears within the type `BTreeMap<u64, CallableFunction>`
= note: required because it appears within the type `rhai::Module`
= note: required because it appears within the type `&rhai::Module`
= note: required because it appears within the type `[&rhai::Module]`
= note: required because it appears within the type `&[&rhai::Module]`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
error[E0277]: `Rc<rhai::ast::script_fn::ScriptFnDef>` cannot be shared between threads safely
--> src\lib.rs:224:9
|
224 | Box::new(h::phaser(feedback_amount, phase_f))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<rhai::ast::script_fn::ScriptFnDef>` cannot be shared between threads
safely
|
= help: within `CallableFunction`, the trait `Sync` is not implemented for `Rc<rhai::ast::script_fn::ScriptFnDef>`
= help: the trait `AudioUnit32` is implemented for `An<X>`
= note: required because it appears within the type `CallableFunction`
= note: required because of the requirements on the impl of `Sync` for
`alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Owned, u64, CallableFunction,
alloc::collections::btree::node::marker::LeafOrInternal>`
= note: required because it appears within the type
`Option<alloc::collections::btree::node::NodeRef<alloc::collections::btree::node::marker::Owned, u64, CallableFunction,
alloc::collections::btree::node::marker::LeafOrInternal>>`
= note: required because it appears within the type `BTreeMap<u64, CallableFunction>`
= note: required because it appears within the type `rhai::Module`
= note: required because it appears within the type `&rhai::Module`
= note: required because it appears within the type `[&rhai::Module]`
= note: required because it appears within the type `&[&rhai::Module]`
= note: required because it appears within the type `rhai::NativeCallContext<'_>`
= note: required because of the requirements on the impl of `Send` for `&rhai::NativeCallContext<'_>`
note: required because it's used within this closure
--> src\lib.rs:223:32
|
223 | let phase_f = Box::new(|x| phase_f.call_within_context(&context, (x,)).unwrap());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `Send` for `Unique<[closure@src\lib.rs:223:32: 223:88]>`
= note: required because it appears within the type `Box<[closure@src\lib.rs:223:32: 223:88]>`
note: required because it's used within this closure
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2378:27
|
2378 | (pass() | lfo(move |t| lerp(T::new(1), T::new(10), phase_f(t))))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it appears within the type `Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>`
= note: required because it appears within the type `Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32,
Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>`
= note: required because it appears within the type `Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>`
= note: required because it appears within the type `Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>, Envelope<f32, f32,
[closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>`
= note: required because it appears within the type `Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32, Stack<f32, Pass<f32>,
Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}], f32>>,
fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>`
= note: required because it appears within the type `Bus<f32, Pass<f32>, Feedback<UInt<UTerm, B1>, f32, Pipe<f32, Pipe<f32,
Stack<f32, Pass<f32>, Envelope<f32, f32, [closure@fundsp::prelude::phaser<f32, Box<[closure@src\lib.rs:223:32: 223:88]>>::{closure#0}],
f32>>, fundsp::audionode::Chain<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, f32, Pipe<f32, Stack<f32, Pass<f32>, Binop<f32,
FrameAdd<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>, Constant<UInt<UTerm, B1>, f32>>>, Thru<Allpole<f32, f32,
UInt<UInt<UTerm, B1>, B0>>>>>>, Stack<f32, Binop<f32, FrameMul<UInt<UTerm, B1>, f32>, MultiPass<UInt<UTerm, B1>, f32>,
Constant<UInt<UTerm, B1>, f32>>, fundsp::audionode::Sink<UInt<UTerm, B1>, f32>>>, FrameId<UInt<UTerm, B1>, f32>>>`
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\prelude.rs:2375:9
|
2375 | ) -> An<impl AudioNode<Sample = T, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type `impl AudioNode<Sample = f32, Inputs = UInt<UTerm, B1>, Outputs = UInt<UTerm, B1>>`
--> C:\<path to>\.cargo\git\checkouts\fundsp-256092770a4f1e91\5081167\src\hacker32.rs:1816:9
|
1816 | ) -> An<impl AudioNode<Sample = f32, Inputs = U1, Outputs = U1>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because of the requirements on the impl of `AudioUnit32` for `An<impl AudioNode<Sample = f32, Inputs = UInt<UTerm,
B1>, Outputs = UInt<UTerm, B1>>>`
= note: required for the cast to the object type `dyn AudioUnit32`
For more information about this error, try `rustc --explain E0277`.
error: could not compile `fundsp-lang` due to 20 previous errors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment