pub trait SpatialId:
IntoFlexIds
+ IterFlexIds
+ IterSingleIds
+ IntoSingleIds
+ Debug
+ Display
+ Clone
+ Eq
+ Hash
+ Ord
+ PartialOrd {
Show 16 methods
// Required methods
fn f_min(&self) -> i32;
fn f_max(&self) -> i32;
fn x_max(&self) -> u32;
fn y_max(&self) -> u32;
fn move_f(&mut self, by: i32) -> Result<(), Error>;
fn move_x(&mut self, by: i32);
fn move_y(&mut self, by: i32) -> Result<(), Error>;
fn length_f_meters(&self) -> f64;
fn length_x_meters(&self) -> f64;
fn length_y_meters(&self) -> f64;
fn spatial_center(&self) -> Coordinate;
fn spatial_vertices(&self) -> [Coordinate; 8];
fn temporal(&self) -> &TemporalId;
fn temporal_mut(&mut self) -> &mut TemporalId;
// Provided methods
fn x_min(&self) -> u32 { ... }
fn y_min(&self) -> u32 { ... }
}Required Methods§
Sourcefn f_min(&self) -> i32
fn f_min(&self) -> i32
ズームレベルにおける最小のFインデックスを返す。
//SingleIdの動作
let single_id=SingleId::new(3,3,2,4).unwrap();
assert_eq!(single_id.f_min(),-8);
//RangeIdの動作
let range_id=RangeId::new(4, [-3,10], [8,9], [5,10]).unwrap();
assert_eq!(range_id.f_min(),-16);
//FlexIdの動作
let flex_id=FlexId::new(5, 3, 2, 3, 10, 1).unwrap();
assert_eq!(flex_id.f_min(),-32);Sourcefn f_max(&self) -> i32
fn f_max(&self) -> i32
ズームレベルにおける最大のFインデックスを返す。
//SingleIdの動作
let single_id=SingleId::new(3,3,2,4).unwrap();
assert_eq!(single_id.f_max(),7);
//RangeIdの動作
let range_id=RangeId::new(4, [-3,10], [8,9], [5,10]).unwrap();
assert_eq!(range_id.f_max(),15);
//FlexIdの動作
let flex_id=FlexId::new(5, 3, 2, 3, 10, 1).unwrap();
assert_eq!(flex_id.f_max(),31);Sourcefn x_max(&self) -> u32
fn x_max(&self) -> u32
ズームレベルにおける最大のXインデックスを返す。
//SingleIdの動作
let single_id=SingleId::new(3,3,2,4).unwrap();
assert_eq!(single_id.x_max(),7);
//RangeIdの動作
let range_id=RangeId::new(4, [-3,10], [8,9], [5,10]).unwrap();
assert_eq!(range_id.x_max(),15);
//FlexIdの動作
let flex_id=FlexId::new(5, 3, 2, 3, 10, 1).unwrap();
assert_eq!(flex_id.x_max(),3);Sourcefn y_max(&self) -> u32
fn y_max(&self) -> u32
ズームレベルにおける最大のYインデックスを返す。
//SingleIdの動作
let single_id=SingleId::new(3,3,2,4).unwrap();
assert_eq!(single_id.y_max(),7);
//RangeIdの動作
let range_id=RangeId::new(4, [-3,10], [8,9], [5,10]).unwrap();
assert_eq!(range_id.y_max(),15);
//FlexIdの動作
let flex_id=FlexId::new(5, 3, 2, 3, 10, 1).unwrap();
assert_eq!(flex_id.y_max(),1023);Sourcefn length_f_meters(&self) -> f64
fn length_f_meters(&self) -> f64
F 方向の長さをメートル単位で返す。
Sourcefn length_x_meters(&self) -> f64
fn length_x_meters(&self) -> f64
X 方向の長さをメートル単位で返す。
Sourcefn length_y_meters(&self) -> f64
fn length_y_meters(&self) -> f64
Y 方向の長さをメートル単位で返す。
Sourcefn spatial_center(&self) -> Coordinate
fn spatial_center(&self) -> Coordinate
空間 ID の中心座標を返す。
Sourcefn spatial_vertices(&self) -> [Coordinate; 8]
fn spatial_vertices(&self) -> [Coordinate; 8]
空間 ID の8頂点を返す。
Sourcefn temporal(&self) -> &TemporalId
fn temporal(&self) -> &TemporalId
時間 ID を参照で返す。
Sourcefn temporal_mut(&mut self) -> &mut TemporalId
fn temporal_mut(&mut self) -> &mut TemporalId
時間 ID を可変参照で返す。
Provided Methods§
Sourcefn x_min(&self) -> u32
fn x_min(&self) -> u32
ズームレベルにおける最小のXインデックスを返す。全てのIDにおいて必ず0を返す。
//SingleIdの動作
let single_id=SingleId::new(3,3,2,4).unwrap();
assert_eq!(single_id.x_min(),0);
//RangeIdの動作
let range_id=RangeId::new(4, [-3,10], [8,9], [5,10]).unwrap();
assert_eq!(range_id.x_min(),0);
//FlexIdの動作
let flex_id=FlexId::new(5, 3, 2, 3, 10, 1).unwrap();
assert_eq!(flex_id.x_min(),0);Sourcefn y_min(&self) -> u32
fn y_min(&self) -> u32
ズームレベルにおける最小のYインデックスを返す。全てのIDにおいて必ず0を返す。
//SingleIdの動作
let single_id=SingleId::new(3,3,2,4).unwrap();
assert_eq!(single_id.y_min(),0);
//RangeIdの動作
let range_id=RangeId::new(4, [-3,10], [8,9], [5,10]).unwrap();
assert_eq!(range_id.y_min(),0);
//FlexIdの動作
let flex_id=FlexId::new(5, 3, 2, 3, 10, 1).unwrap();
assert_eq!(flex_id.y_min(),0);Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".