Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pub struct RoomPosition(i32); // Doesnt matter for now
- impl RoomPosition {
- pub fn find_in_range<T: FindConstant>(&self, _ty: T, _range: u32) -> Vec<T::Item> {
- vec![]
- }
- }
- pub trait FindConstant {
- type Item: FromExpectedType<i32>;
- }
- #[derive(Debug)]
- pub struct ConversionError;
- pub trait FromExpectedType<T>: Sized {
- fn from_expected_type(v: T) -> Result<Self, ConversionError>;
- }
- pub fn count_in_range<T, F>(pos: RoomPosition, find_type: T, range: u32, filter: F) -> u32
- where
- T : FindConstant,
- for<'r> F : FnMut(&'r T::Item) -> bool
- {
- pos
- .find_in_range(find_type, range)
- .into_iter()
- .filter(filter)
- .count() as u32
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement