You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: actor.rs
    path of file: ./repos/rusty-shooter/src
    
    the code of the file until where you have to start completion: use crate::{
    bot::Bot, character::Character, level::UpdateContext, message::Message, player::Player,
};
use fyrox::{
    core::{
        algebra::Vector3,
        pool::{Handle, Pool},
        visitor::{Visit, VisitResult, Visitor},
    },
    scene::Scene,
};
use std::ops::{Deref, DerefMut};

#[allow(clippy::large_enum_variant)]
#[derive(Visit)]
pub enum Actor {
    Bot(Bot),
    Player(Player),
}

impl Default for Actor {
    fn default() -> Self {
        Actor::Bot(Default::default())
    }
}

macro_rules! static_dispatch {
    ($self:ident, $func:ident, $($args:expr),*) => {
        match $self {
            Actor::Player(v) => v.$func($($args),*),
            Actor::Bot(v) => v.$func($($args),*),
        }
    };
}

impl Actor {
    pub fn can_be_removed(&self) -> bool {
        static_dispatch!(self, can_be_removed,)
    }

    pub fn clean_up(&mut self, scene: &mut Scene) {
        static_dispatch!(self, clean_up, scene)
   
    
    fn handle_event(&mut self, context: &mut UpdateContext) {
        for actor in self.pool.iter() {
            let mut velocity = None;
            for contact_manifold in context.scene.graph[actor.collider]
                .as_collider()
                .contacts(&context.scene.graph.physics)
            {
                for jump_pad in context.jump_pads.iter() {
                    if contact_manifold.collider1 == actor.collider
                        && contact_manifold.collider2 == jump_pad.collider()
                        || contact_manifold.collider1 == jump_pad.collider()
                            && contact_manifold.collider2 == actor.collider
                    {
                        velocity = Some(jump_pad.velocity());
                    }
                }
            }

            if let Some(velocity) = velocity {
                context.scene.graph[actor.get_body()]
                    .as_rigid_body_mut()
                    .set_lin_vel(velocity);
            }
        }
    }