Fix bare trait objects warning, add explicit `dyn`

This commit is contained in:
ice_iix 2019-11-02 15:37:39 -07:00
parent 3946f22863
commit c88631b124
10 changed files with 36 additions and 36 deletions

View File

@ -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 {

View File

@ -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 {

View File

@ -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;
}

View File

@ -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);

View File

@ -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);

View File

@ -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() {

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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,