mirror of
https://github.com/FliegendeWurst/cursive.git
synced 2024-11-23 17:35:00 +00:00
Add dyn to trait objects
This commit is contained in:
parent
5faf8d6c48
commit
269f2ab521
@ -47,7 +47,7 @@ pub struct Cursive {
|
|||||||
cb_sink: Sender<Box<dyn CbFunc>>,
|
cb_sink: Sender<Box<dyn CbFunc>>,
|
||||||
|
|
||||||
// User-provided data.
|
// User-provided data.
|
||||||
user_data: Box<Any>,
|
user_data: Box<dyn Any>,
|
||||||
|
|
||||||
fps: Option<NonZeroU32>,
|
fps: Option<NonZeroU32>,
|
||||||
boring_frame_count: u32,
|
boring_frame_count: u32,
|
||||||
|
@ -27,7 +27,7 @@ pub struct Callback(Rc<Box<dyn Fn(&mut Cursive)>>);
|
|||||||
// TODO: remove the Box when Box<T: Sized> -> Rc<T> is possible
|
// TODO: remove the Box when Box<T: Sized> -> Rc<T> is possible
|
||||||
|
|
||||||
/// A boxed callback that can be run on `&mut Any`.
|
/// A boxed callback that can be run on `&mut Any`.
|
||||||
pub type AnyCb<'a> = Box<FnMut(&mut dyn Any) + 'a>;
|
pub type AnyCb<'a> = Box<dyn FnMut(&mut dyn Any) + 'a>;
|
||||||
|
|
||||||
/// A trigger that only selects some types of events.
|
/// A trigger that only selects some types of events.
|
||||||
pub struct EventTrigger(Box<dyn Fn(&Event) -> bool>);
|
pub struct EventTrigger(Box<dyn Fn(&Event) -> bool>);
|
||||||
|
@ -126,7 +126,7 @@ impl<T: ViewWrapper> View for T {
|
|||||||
|
|
||||||
fn call_on_any<'a>(
|
fn call_on_any<'a>(
|
||||||
&mut self, selector: &Selector<'_>,
|
&mut self, selector: &Selector<'_>,
|
||||||
callback: Box<FnMut(&mut dyn Any) + 'a>,
|
callback: Box<dyn FnMut(&mut dyn Any) + 'a>,
|
||||||
) {
|
) {
|
||||||
self.wrap_call_on_any(selector, callback)
|
self.wrap_call_on_any(selector, callback)
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ impl<V: View> ViewWrapper for HideableView<V> {
|
|||||||
|
|
||||||
fn wrap_call_on_any<'a>(
|
fn wrap_call_on_any<'a>(
|
||||||
&mut self, selector: &Selector<'_>,
|
&mut self, selector: &Selector<'_>,
|
||||||
callback: Box<FnMut(&mut dyn Any) + 'a>,
|
callback: Box<dyn FnMut(&mut dyn Any) + 'a>,
|
||||||
) {
|
) {
|
||||||
// We always run callbacks, even when invisible.
|
// We always run callbacks, even when invisible.
|
||||||
self.view.call_on_any(selector, callback)
|
self.view.call_on_any(selector, callback)
|
||||||
|
@ -42,7 +42,7 @@ impl<V: View> IdView<V> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Shortcut for a boxed callback (for the wrap_call_on_any method).
|
// Shortcut for a boxed callback (for the wrap_call_on_any method).
|
||||||
type BoxedCallback<'a> = Box<for<'b> FnMut(&'b mut dyn Any) + 'a>;
|
type BoxedCallback<'a> = Box<dyn for<'b> FnMut(&'b mut dyn Any) + 'a>;
|
||||||
|
|
||||||
impl<T: View + 'static> ViewWrapper for IdView<T> {
|
impl<T: View + 'static> ViewWrapper for IdView<T> {
|
||||||
type V = T;
|
type V = T;
|
||||||
|
Loading…
Reference in New Issue
Block a user