SYMBOL INDEX (108 symbols across 15 files) FILE: src/controllers/collisions.rs constant SCORE_PER_ENEMY (line 5) | const SCORE_PER_ENEMY: u32 = 10; type CollisionsController (line 7) | pub struct CollisionsController; method handle_collisions (line 10) | pub fn handle_collisions(state: &mut GameState) { method handle_bullet_collisions (line 19) | fn handle_bullet_collisions(state: &mut GameState) { method handle_player_collisions (line 51) | fn handle_player_collisions(state: &mut GameState) { FILE: src/controllers/input.rs type Actions (line 3) | pub struct Actions { FILE: src/controllers/time.rs constant BULLETS_PER_SECOND (line 11) | const BULLETS_PER_SECOND: f64 = 100.0; constant BULLET_RATE (line 12) | const BULLET_RATE: f64 = 1.0 / BULLETS_PER_SECOND; constant ENEMY_SPAWNS_PER_SECOND (line 14) | const ENEMY_SPAWNS_PER_SECOND: f64 = 1.0; constant ENEMY_SPAWN_RATE (line 15) | const ENEMY_SPAWN_RATE: f64 = 1.0 / ENEMY_SPAWNS_PER_SECOND; constant TRAIL_PARTICLES_PER_SECOND (line 17) | const TRAIL_PARTICLES_PER_SECOND: f64 = 20.0; constant TRAIL_PARTICLE_RATE (line 18) | const TRAIL_PARTICLE_RATE: f64 = 1.0 / TRAIL_PARTICLES_PER_SECOND; constant ADVANCE_SPEED (line 23) | const ADVANCE_SPEED: f64 = 200.0; constant BULLET_SPEED (line 24) | const BULLET_SPEED: f64 = 500.0; constant ENEMY_SPEED (line 25) | const ENEMY_SPEED: f64 = 100.0; constant ROTATE_SPEED (line 26) | const ROTATE_SPEED: f64 = 2.0 * f64::consts::PI; constant PLAYER_GRACE_AREA (line 28) | const PLAYER_GRACE_AREA: f64 = 200.0; type TimeController (line 31) | pub struct TimeController { function new (line 41) | pub fn new(rng: T) -> TimeController { function update_seconds (line 54) | pub fn update_seconds(&mut self, dt: f64, actions: &Actions, state: &mut... FILE: src/game_state.rs type GameState (line 8) | pub struct GameState { method new (line 17) | pub fn new(size: Size) -> GameState { method reset (line 26) | pub fn reset(&mut self) { FILE: src/geometry/point.rs type Point (line 9) | pub struct Point { method new (line 16) | pub fn new(x: f64, y: f64) -> Point { method random (line 21) | pub fn random(rng: &mut R, bounds: Size) -> Point { method squared_distance_to (line 29) | pub fn squared_distance_to(&self, target: &Point) -> f64 { method rotate (line 35) | pub fn rotate(mut self, radians: f64) -> Point { method translate (line 45) | pub fn translate(mut self, other: &Point) -> Point { method intersect_circle (line 52) | pub fn intersect_circle(self, center: &Point, radius: f64) -> bool { type Output (line 79) | type Output = Point; method add (line 81) | fn add(self, _rhs: f64) -> Point { type Output (line 103) | type Output = Point; method sub (line 105) | fn sub(self, _rhs: f64) -> Point { type Output (line 127) | type Output = Point; method mul (line 129) | fn mul(self, _rhs: f64) -> Point { type Output (line 153) | type Output = Point; method div (line 155) | fn div(self, _rhs: f64) -> Point { method eq (line 60) | fn eq (&self, _rhs: &Self) -> bool { type Output (line 67) | type Output = Point; method add (line 69) | fn add(self, _rhs: Point) -> Point { type Output (line 91) | type Output = Point; method sub (line 93) | fn sub(self, _rhs: Point) -> Point { type Output (line 115) | type Output = Point; method mul (line 117) | fn mul(self, _rhs: Point) -> Point { type Output (line 139) | type Output = Point; method div (line 141) | fn div(self, _rhs: Point) -> Point { FILE: src/geometry/size.rs type Size (line 7) | pub struct Size { method new (line 14) | pub fn new(width: f64, height: f64) -> Size { method contains (line 19) | pub fn contains(&self, point: Point) -> bool { method random_x (line 25) | pub fn random_x(&self, rng: &mut R) -> f64 { method random_y (line 30) | pub fn random_y(&self, rng: &mut R) -> f64 { FILE: src/geometry/traits.rs type Position (line 8) | pub trait Position { method x (line 10) | fn x(&self) -> f64; method x_mut (line 13) | fn x_mut(&mut self) -> &mut f64; method y (line 16) | fn y(&self) -> f64; method y_mut (line 19) | fn y_mut(&mut self) -> &mut f64; method position (line 22) | fn position(&self) -> Point { type Advance (line 28) | pub trait Advance: Position { method direction (line 33) | fn direction(&self) -> f64; method direction_mut (line 36) | fn direction_mut(&mut self) -> &mut f64; method point_to (line 39) | fn point_to(&mut self, target: Point) { method advance (line 50) | fn advance(&mut self, units: f64) { method advance_wrapping (line 57) | fn advance_wrapping(&mut self, units: f64, bounds: Size) { type Collide (line 76) | pub trait Collide: Position { method radius (line 78) | fn radius(&self) -> f64; method diameter (line 81) | fn diameter(&self) -> f64 { method collides_with (line 86) | fn collides_with(&self, other: &O) -> bool { FILE: src/lib.rs type GameData (line 27) | struct GameData { function new_game_data (line 33) | fn new_game_data(width: f64, height: f64) -> GameData { function clear_screen (line 43) | fn clear_screen(); function draw_player (line 44) | fn draw_player(_: c_double, _: c_double, _: c_double); function draw_enemy (line 45) | fn draw_enemy(_: c_double, _: c_double); function draw_bullet (line 46) | fn draw_bullet(_: c_double, _: c_double); function draw_particle (line 47) | fn draw_particle(_: c_double, _: c_double, _: c_double); function draw_score (line 48) | fn draw_score(_: c_double); function resize (line 52) | pub extern "C" fn resize(width: c_double, height: c_double) { function draw (line 57) | pub unsafe extern "C" fn draw() { function update (line 80) | pub extern "C" fn update(time: c_double) { function int_to_bool (line 86) | fn int_to_bool(i: c_int) -> bool { function toggle_shoot (line 91) | pub extern "C" fn toggle_shoot(b: c_int) { function toggle_boost (line 97) | pub extern "C" fn toggle_boost(b: c_int) { function toggle_turn_left (line 103) | pub extern "C" fn toggle_turn_left(b: c_int) { function toggle_turn_right (line 109) | pub extern "C" fn toggle_turn_right(b: c_int) { FILE: src/models/bullet.rs type Bullet (line 7) | pub struct Bullet { method new (line 15) | pub fn new(vector: Vector) -> Bullet { method update (line 20) | pub fn update(&mut self, units: f64) { method radius (line 26) | fn radius(&self) -> f64 { 3.0 } FILE: src/models/enemy.rs type Enemy (line 6) | pub struct Enemy { method new (line 14) | pub fn new(vector: Vector) -> Enemy { method update (line 19) | pub fn update(&mut self, speed: f64, player_position: Point) { method radius (line 27) | fn radius(&self) -> f64 { 10.0 } FILE: src/models/particle.rs type Particle (line 9) | pub struct Particle { method new (line 18) | pub fn new(vector: Vector, ttl: f64) -> Particle { method update (line 23) | pub fn update(&mut self, elapsed_time: f64) { FILE: src/models/player.rs type Player (line 9) | pub struct Player { method random (line 24) | pub fn random(rng: &mut R, bounds: Size) -> Player { method front (line 29) | pub fn front(&self) -> Point { constant POLYGON (line 16) | pub const POLYGON: &'static [[f64; 2]] = &[ method radius (line 37) | fn radius(&self) -> f64 { 6.0 } FILE: src/models/vector.rs type Vector (line 9) | pub struct Vector { method new (line 18) | pub fn new(position: Point, direction: f64) -> Vector { method random (line 23) | pub fn random(rng: &mut R, bounds: Size) -> Vector { method invert (line 28) | pub fn invert(mut self) -> Vector { FILE: src/models/world.rs type World (line 7) | pub struct World { method new (line 17) | pub fn new(rng: &mut R, size: Size) -> World { FILE: src/util.rs function fast_retain (line 7) | pub fn fast_retain(vec: &mut Vec, mut f: F) function make_explosion (line 21) | pub fn make_explosion(particles: &mut Vec, position: &Point, i...