Trait UserServiceInterface

Source
pub trait UserServiceInterface: Send + Sync {
    // Required methods
    fn create_and_save_user(&self, external_id: i64) -> GameResult<User>;
    fn get_unmet_location_unlock_requirements(
        &self,
        user: &User,
        location: Arc<LocationData>,
    ) -> GameResult<LocationUnlockRequirements>;
    fn unlock_location(
        &self,
        user: &User,
        location_data: Arc<LocationData>,
    ) -> GameResult<UserLocation>;
    fn get_unlocked_locations(
        &self,
        user: &User,
    ) -> GameResult<Vec<UserLocation>>;
    fn get_unlocked_location_ids(&self, user: &User) -> GameResult<Vec<i32>>;
}

Required Methods§

Source

fn create_and_save_user(&self, external_id: i64) -> GameResult<User>

Source

fn get_unmet_location_unlock_requirements( &self, user: &User, location: Arc<LocationData>, ) -> GameResult<LocationUnlockRequirements>

Source

fn unlock_location( &self, user: &User, location_data: Arc<LocationData>, ) -> GameResult<UserLocation>

Source

fn get_unlocked_locations(&self, user: &User) -> GameResult<Vec<UserLocation>>

Source

fn get_unlocked_location_ids(&self, user: &User) -> GameResult<Vec<i32>>

Implementors§