Skip to main content

SpatialId

Trait SpatialId 

Source
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 { ... }
}
Expand description

SingleId,RangeId,FlexIdが共通して持つTrait

Required Methods§

Source

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);
Source

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);
Source

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);
Source

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);
Source

fn move_f(&mut self, by: i32) -> Result<(), Error>

F 方向に指定インデックスだけ移動する。

Source

fn move_x(&mut self, by: i32)

X 方向に指定インデックスだけ移動する。

Source

fn move_y(&mut self, by: i32) -> Result<(), Error>

Y 方向に指定インデックスだけ移動する。

Source

fn length_f_meters(&self) -> f64

F 方向の長さをメートル単位で返す。

Source

fn length_x_meters(&self) -> f64

X 方向の長さをメートル単位で返す。

Source

fn length_y_meters(&self) -> f64

Y 方向の長さをメートル単位で返す。

Source

fn spatial_center(&self) -> Coordinate

空間 ID の中心座標を返す。

Source

fn spatial_vertices(&self) -> [Coordinate; 8]

空間 ID の8頂点を返す。

Source

fn temporal(&self) -> &TemporalId

時間 ID を参照で返す。

Source

fn temporal_mut(&mut self) -> &mut TemporalId

時間 ID を可変参照で返す。

Provided Methods§

Source

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);
Source

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".

Implementors§