Fix bare trait objects warning, add explicit `dyn`
This commit is contained in:
parent
3946f22863
commit
c88631b124
|
@ -55,15 +55,15 @@ pub struct CVar<T: Sized + Any + 'static> {
|
|||
pub description: &'static str,
|
||||
pub mutable: bool,
|
||||
pub serializable: bool,
|
||||
pub default: &'static Fn() -> T,
|
||||
pub default: &'static dyn Fn() -> T,
|
||||
}
|
||||
|
||||
impl Var for CVar<i64> {
|
||||
fn serialize(&self, val: &Box<Any>) -> String {
|
||||
fn serialize(&self, val: &Box<dyn Any>) -> String {
|
||||
val.downcast_ref::<i64>().unwrap().to_string()
|
||||
}
|
||||
|
||||
fn deserialize(&self, input: &str) -> Box<Any> {
|
||||
fn deserialize(&self, input: &str) -> Box<dyn Any> {
|
||||
Box::new(input.parse::<i64>().unwrap())
|
||||
}
|
||||
|
||||
|
@ -77,11 +77,11 @@ impl Var for CVar<i64> {
|
|||
}
|
||||
|
||||
impl Var for CVar<bool> {
|
||||
fn serialize(&self, val: &Box<Any>) -> String {
|
||||
fn serialize(&self, val: &Box<dyn Any>) -> String {
|
||||
val.downcast_ref::<bool>().unwrap().to_string()
|
||||
}
|
||||
|
||||
fn deserialize(&self, input: &str) -> Box<Any> {
|
||||
fn deserialize(&self, input: &str) -> Box<dyn Any> {
|
||||
Box::new(input.parse::<bool>().unwrap())
|
||||
}
|
||||
|
||||
|
@ -95,11 +95,11 @@ impl Var for CVar<bool> {
|
|||
}
|
||||
|
||||
impl Var for CVar<String> {
|
||||
fn serialize(&self, val: &Box<Any>) -> String {
|
||||
fn serialize(&self, val: &Box<dyn Any>) -> String {
|
||||
format!("\"{}\"", val.downcast_ref::<String>().unwrap())
|
||||
}
|
||||
|
||||
fn deserialize(&self, input: &str) -> Box<Any> {
|
||||
fn deserialize(&self, input: &str) -> Box<dyn Any> {
|
||||
Box::new((&input[1..input.len() - 1]).to_owned())
|
||||
}
|
||||
|
||||
|
@ -112,8 +112,8 @@ impl Var for CVar<String> {
|
|||
}
|
||||
|
||||
pub trait Var {
|
||||
fn serialize(&self, val: &Box<Any>) -> String;
|
||||
fn deserialize(&self, input: &str) -> Box<Any>;
|
||||
fn serialize(&self, val: &Box<dyn Any>) -> String;
|
||||
fn deserialize(&self, input: &str) -> Box<dyn Any>;
|
||||
fn description(&self) -> &'static str;
|
||||
fn can_serialize(&self) -> bool;
|
||||
}
|
||||
|
@ -121,8 +121,8 @@ pub trait Var {
|
|||
#[derive(Default)]
|
||||
pub struct Vars {
|
||||
names: HashMap<String, &'static str>,
|
||||
vars: HashMap<&'static str, Box<Var>>,
|
||||
var_values: HashMap<&'static str, RefCell<Box<Any>>>,
|
||||
vars: HashMap<&'static str, Box<dyn Var>>,
|
||||
var_values: HashMap<&'static str, RefCell<Box<dyn Any>>>,
|
||||
}
|
||||
|
||||
impl Vars {
|
||||
|
|
|
@ -99,8 +99,8 @@ pub struct Manager {
|
|||
|
||||
component_ids: RefCell<HashMap<TypeId, usize, BuildHasherDefault<FNVHash>>>,
|
||||
|
||||
systems: Option<Vec<Box<System + Send>>>,
|
||||
render_systems: Option<Vec<Box<System + Send>>>,
|
||||
systems: Option<Vec<Box<dyn System + Send>>>,
|
||||
render_systems: Option<Vec<Box<dyn System + Send>>>,
|
||||
|
||||
changed_entity_components: HashSet<Entity, BuildHasherDefault<FNVHash>>,
|
||||
}
|
||||
|
@ -471,7 +471,7 @@ const COMPONENTS_PER_BLOCK: usize = 64;
|
|||
struct ComponentMem {
|
||||
data: Vec<Option<(Vec<u8>, BSet, usize)>>,
|
||||
component_size: usize,
|
||||
drop_func: Box<Fn(*mut u8) + Send>,
|
||||
drop_func: Box<dyn Fn(*mut u8) + Send>,
|
||||
}
|
||||
|
||||
impl ComponentMem {
|
||||
|
|
|
@ -37,11 +37,11 @@ const ASSET_VERSION: &str = "1.12";
|
|||
const ASSET_INDEX_URL: &str = "https://launchermeta.mojang.com/mc/assets/1.12/67e29e024e664064c1f04c728604f83c24cbc218/1.12.json";
|
||||
|
||||
pub trait Pack: Sync + Send {
|
||||
fn open(&self, name: &str) -> Option<Box<io::Read>>;
|
||||
fn open(&self, name: &str) -> Option<Box<dyn io::Read>>;
|
||||
}
|
||||
|
||||
pub struct Manager {
|
||||
packs: Vec<Box<Pack>>,
|
||||
packs: Vec<Box<dyn Pack>>,
|
||||
version: usize,
|
||||
|
||||
vanilla_chan: Option<mpsc::Receiver<bool>>,
|
||||
|
@ -104,7 +104,7 @@ impl Manager {
|
|||
self.version
|
||||
}
|
||||
|
||||
pub fn open(&self, plugin: &str, name: &str) -> Option<Box<io::Read>> {
|
||||
pub fn open(&self, plugin: &str, name: &str) -> Option<Box<dyn io::Read>> {
|
||||
let path = format!("assets/{}/{}", plugin, name);
|
||||
for pack in self.packs.iter().rev() {
|
||||
if let Some(val) = pack.open(&path) {
|
||||
|
@ -114,7 +114,7 @@ impl Manager {
|
|||
None
|
||||
}
|
||||
|
||||
pub fn open_all(&self, plugin: &str, name: &str) -> Vec<Box<io::Read>> {
|
||||
pub fn open_all(&self, plugin: &str, name: &str) -> Vec<Box<dyn io::Read>> {
|
||||
let mut ret = Vec::new();
|
||||
let path = format!("assets/{}/{}", plugin, name);
|
||||
for pack in self.packs.iter().rev() {
|
||||
|
@ -261,7 +261,7 @@ impl Manager {
|
|||
mui.progress_ui.retain(|v| v.position >= -UI_HEIGHT || !v.closing);
|
||||
}
|
||||
|
||||
fn add_pack(&mut self, pck: Box<Pack>) {
|
||||
fn add_pack(&mut self, pck: Box<dyn Pack>) {
|
||||
self.packs.push(pck);
|
||||
self.version += 1;
|
||||
}
|
||||
|
@ -433,7 +433,7 @@ struct DirPack {
|
|||
}
|
||||
|
||||
impl Pack for DirPack {
|
||||
fn open(&self, name: &str) -> Option<Box<io::Read>> {
|
||||
fn open(&self, name: &str) -> Option<Box<dyn io::Read>> {
|
||||
match fs::File::open(self.root.join(name)) {
|
||||
Ok(val) => Some(Box::new(val)),
|
||||
Err(_) => None,
|
||||
|
@ -444,7 +444,7 @@ impl Pack for DirPack {
|
|||
struct InternalPack;
|
||||
|
||||
impl Pack for InternalPack {
|
||||
fn open(&self, name: &str) -> Option<Box<io::Read>> {
|
||||
fn open(&self, name: &str) -> Option<Box<dyn io::Read>> {
|
||||
match internal::get_file(name) {
|
||||
Some(val) => Some(Box::new(io::Cursor::new(val))),
|
||||
None => None,
|
||||
|
@ -474,7 +474,7 @@ impl ObjectPack {
|
|||
}
|
||||
|
||||
impl Pack for ObjectPack {
|
||||
fn open(&self, name: &str) -> Option<Box<io::Read>> {
|
||||
fn open(&self, name: &str) -> Option<Box<dyn io::Read>> {
|
||||
if !name.starts_with("assets/") {
|
||||
return None;
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ impl super::Screen for Connecting {
|
|||
fn tick(&mut self,
|
||||
_delta: f64,
|
||||
renderer: &mut render::Renderer,
|
||||
_ui_container: &mut ui::Container) -> Option<Box<super::Screen>>{
|
||||
_ui_container: &mut ui::Container) -> Option<Box<dyn super::Screen>>{
|
||||
let elements = self.elements.as_mut().unwrap();
|
||||
|
||||
elements.logo.tick(renderer);
|
||||
|
|
|
@ -172,7 +172,7 @@ impl super::Screen for EditServerEntry {
|
|||
fn tick(&mut self,
|
||||
_delta: f64,
|
||||
renderer: &mut render::Renderer,
|
||||
_ui_container: &mut ui::Container) -> Option<Box<super::Screen>> {
|
||||
_ui_container: &mut ui::Container) -> Option<Box<dyn super::Screen>> {
|
||||
|
||||
let elements = self.elements.as_mut().unwrap();
|
||||
elements.logo.tick(renderer);
|
||||
|
|
|
@ -160,7 +160,7 @@ impl super::Screen for Login {
|
|||
fn tick(&mut self,
|
||||
_delta: f64,
|
||||
renderer: &mut render::Renderer,
|
||||
_ui_container: &mut ui::Container) -> Option<Box<super::Screen>> {
|
||||
_ui_container: &mut ui::Container) -> Option<Box<dyn super::Screen>> {
|
||||
let elements = self.elements.as_mut().unwrap();
|
||||
|
||||
if elements.try_login.get() && elements.login_res.is_none() {
|
||||
|
|
|
@ -41,7 +41,7 @@ pub trait Screen {
|
|||
fn tick(&mut self,
|
||||
delta: f64,
|
||||
renderer: &mut render::Renderer,
|
||||
ui_container: &mut ui::Container) -> Option<Box<Screen>>;
|
||||
ui_container: &mut ui::Container) -> Option<Box<dyn Screen>>;
|
||||
|
||||
// Events
|
||||
fn on_scroll(&mut self, _x: f64, _y: f64) {
|
||||
|
@ -53,7 +53,7 @@ pub trait Screen {
|
|||
}
|
||||
|
||||
struct ScreenInfo {
|
||||
screen: Box<Screen>,
|
||||
screen: Box<dyn Screen>,
|
||||
init: bool,
|
||||
active: bool,
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ pub struct ScreenSystem {
|
|||
impl ScreenSystem {
|
||||
pub fn new() -> ScreenSystem { Default::default() }
|
||||
|
||||
pub fn add_screen(&mut self, screen: Box<Screen>) {
|
||||
pub fn add_screen(&mut self, screen: Box<dyn Screen>) {
|
||||
self.screens.push(ScreenInfo {
|
||||
screen,
|
||||
init: false,
|
||||
|
@ -81,7 +81,7 @@ impl ScreenSystem {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn replace_screen(&mut self, screen: Box<Screen>) {
|
||||
pub fn replace_screen(&mut self, screen: Box<dyn Screen>) {
|
||||
self.pop_screen();
|
||||
self.add_screen(screen);
|
||||
}
|
||||
|
|
|
@ -438,7 +438,7 @@ impl super::Screen for ServerList {
|
|||
fn tick(&mut self,
|
||||
delta: f64,
|
||||
renderer: &mut render::Renderer,
|
||||
ui_container: &mut ui::Container) -> Option<Box<super::Screen>> {
|
||||
ui_container: &mut ui::Container) -> Option<Box<dyn super::Screen>> {
|
||||
if *self.needs_reload.borrow() {
|
||||
self.reload_server_list(renderer, ui_container);
|
||||
}
|
||||
|
|
|
@ -160,7 +160,7 @@ impl super::Screen for SettingsMenu {
|
|||
}
|
||||
|
||||
// Called every frame the screen is active
|
||||
fn tick(&mut self, _delta: f64, renderer: &mut render::Renderer, ui_container: &mut ui::Container) -> Option<Box<super::Screen>> {
|
||||
fn tick(&mut self, _delta: f64, renderer: &mut render::Renderer, ui_container: &mut ui::Container) -> Option<Box<dyn super::Screen>> {
|
||||
let elements = self.elements.as_mut().unwrap();
|
||||
{
|
||||
let mode = ui_container.mode;
|
||||
|
@ -309,7 +309,7 @@ impl super::Screen for VideoSettingsMenu {
|
|||
}
|
||||
|
||||
// Called every frame the screen is active
|
||||
fn tick(&mut self, _delta: f64, renderer: &mut render::Renderer, ui_container: &mut ui::Container) -> Option<Box<super::Screen>> {
|
||||
fn tick(&mut self, _delta: f64, renderer: &mut render::Renderer, ui_container: &mut ui::Container) -> Option<Box<dyn super::Screen>> {
|
||||
let elements = self.elements.as_mut().unwrap();
|
||||
{
|
||||
let mode = ui_container.mode;
|
||||
|
@ -394,7 +394,7 @@ impl super::Screen for AudioSettingsMenu {
|
|||
}
|
||||
|
||||
// Called every frame the screen is active
|
||||
fn tick(&mut self, _delta: f64, renderer: &mut render::Renderer, ui_container: &mut ui::Container) -> Option<Box<super::Screen>> {
|
||||
fn tick(&mut self, _delta: f64, renderer: &mut render::Renderer, ui_container: &mut ui::Container) -> Option<Box<dyn super::Screen>> {
|
||||
let elements = self.elements.as_mut().unwrap();
|
||||
{
|
||||
let mode = ui_container.mode;
|
||||
|
|
|
@ -500,9 +500,9 @@ macro_rules! element {
|
|||
data: Vec<u8>,
|
||||
needs_rebuild: bool,
|
||||
|
||||
hover_funcs: Vec<Box<Fn(&mut $name, bool, &mut crate::Game) -> bool>>,
|
||||
hover_funcs: Vec<Box<dyn Fn(&mut $name, bool, &mut crate::Game) -> bool>>,
|
||||
hover_state: bool,
|
||||
click_funcs: Vec<Box<Fn(&mut $name, &mut crate::Game) -> bool>>,
|
||||
click_funcs: Vec<Box<dyn Fn(&mut $name, &mut crate::Game) -> bool>>,
|
||||
|
||||
focused: bool,
|
||||
|
||||
|
@ -1287,7 +1287,7 @@ element! {
|
|||
priv text: Option<TextRef>,
|
||||
priv was_focused: bool,
|
||||
priv cursor_tick: f64,
|
||||
priv submit_funcs: Vec<Box<Fn(&mut TextBox, &mut crate::Game)>>,
|
||||
priv submit_funcs: Vec<Box<dyn Fn(&mut TextBox, &mut crate::Game)>>,
|
||||
}
|
||||
builder TextBoxBuilder {
|
||||
hardcode button = None,
|
||||
|
|
Loading…
Reference in New Issue