pub struct Time<T: Idx>(/* private fields */);
Expand description
Time index (microsec since JD=0)
Trait Implementations§
source§impl<T> MocQty<T> for Time<T>where
T: Idx,
impl<T> MocQty<T> for Time<T>where
T: Idx,
const MAX_DEPTH: u8 = _
const MAX_SHIFT: u32 = _
fn n_cells_max() -> T
fn n_cells(depth: u8) -> T
source§fn delta_depth_max_from_n_bits(n_bits: u8) -> u8
fn delta_depth_max_from_n_bits(n_bits: u8) -> u8
Upper bound on the maximum number of depths that can be coded using
n_bits
of a MOC index.
I.e., maximum possible hierarchy depth on a
len = [0, 2^(delta_depth)^dim]
=> (log(len) / log(2)) / dim = delta_depth
source§fn delta_depth_max_from_n_bits_unchecked(n_bits: u8) -> u8
fn delta_depth_max_from_n_bits_unchecked(n_bits: u8) -> u8
Same as
delta_depth_max_from_n_bits
without checking that the result is smaller than
depth_max.fn delta_with_depth_max(depth: u8) -> u8
fn shift_from_depth_max(depth: u8) -> u8
fn get_msb(x: T) -> u32
fn get_lsb(x: T) -> u32
fn compute_min_depth(x: T) -> u8
source§fn from_uniq_gen(uniq: T) -> (u8, T)
fn from_uniq_gen(uniq: T) -> (u8, T)
From generic uniq notation (using a sentinel bit)
source§fn to_uniq_gen(depth: u8, idx: T) -> T
fn to_uniq_gen(depth: u8, idx: T) -> T
To generic uniq notation (using a sentinel bit)
fn sentinel_bit(depth: u8) -> T
source§fn uniq_gen_to_range(uniq: T) -> Range<T>
fn uniq_gen_to_range(uniq: T) -> Range<T>
Range from the genric uniq notation (using a sentinel bit)
source§fn to_zuniq(depth: u8, idx: T) -> T
fn to_zuniq(depth: u8, idx: T) -> T
zuniq
is similar to the uniq
notation (i.e. it encodes both the depth
and
the cell index
at this depth), but the natural ordering of the type T
preserves the
global ordering of the cells, independently of the cells depth.
It is similar to the cdshealpix
BMOC
notation (without the extra bit coding a boolean)
and to multi-order-map,
but also coding the depth.fn from_zuniq(zuniq: T) -> (u8, T)
source§impl<T: Idx> MocableQty for Time<T>
impl<T: Idx> MocableQty for Time<T>
source§const NAME: &'static str = "TIME"
const NAME: &'static str = "TIME"
A simple str to identify the quantity (e.g. in ASCII serialisation)
source§const PREFIX: char = 't'
const PREFIX: char = 't'
A simple char prefix to identify the quantity (e.g. in ASCII serialisation)
source§const DIM: u8 = 1u8
const DIM: u8 = 1u8
Dimension of the qty, i.e. number of bits needed to code a sub-cell relative index
source§const N_D0_CELLS: u8 = 2u8
const N_D0_CELLS: u8 = 2u8
Number of base cells, i.e. number of cell at depth 0
(usually 2^dim, but 12 in the HEALPix case)
source§const HAS_COOSYS: bool = false
const HAS_COOSYS: bool = false
For FITS serialization (TODO: find a better approach)
source§const HAS_TIMESYS: bool = true
const HAS_TIMESYS: bool = true
For FITS serialization (TODO: find a better approach)
source§const HAS_FREQSYS: bool = false
const HAS_FREQSYS: bool = false
For FITS serialization (TODO: find a better approach)
source§fn mult_by_dim<U: Idx>(v: U) -> U
fn mult_by_dim<U: Idx>(v: U) -> U
v * Self::DIM
, generic so that for: Read moresource§fn div_by_dim<U: Idx>(v: U) -> U
fn div_by_dim<U: Idx>(v: U) -> U
v / Self::DIM
, generic so that for: Read moresource§const N_RESERVED_BITS: u8 = 2u8
const N_RESERVED_BITS: u8 = 2u8
Number of bits reserved to code the quantity type
source§const LEVEL_MASK: u8 = _
const LEVEL_MASK: u8 = _
Mask to select the bit(s) of a level > 0: Read more
fn shift(delta_depth: u8) -> u8
source§impl<T: PartialEq + Idx> PartialEq for Time<T>
impl<T: PartialEq + Idx> PartialEq for Time<T>
source§impl<T: Idx, R: BufRead> RangeMOC2Iterator<T, Time<T>, RangeMocIter<T, Time<T>>, T, Hpx<T>, RangeMocIter<T, Hpx<T>>, RangeMOC2Elem<T, Time<T>, T, Hpx<T>>> for RangeMoc2DIterFromFits<T, R>
impl<T: Idx, R: BufRead> RangeMOC2Iterator<T, Time<T>, RangeMocIter<T, Time<T>>, T, Hpx<T>, RangeMocIter<T, Hpx<T>>, RangeMOC2Elem<T, Time<T>, T, Hpx<T>>> for RangeMoc2DIterFromFits<T, R>
fn into_range_moc2(self) -> RangeMOC2<T, Q, U, R>
fn or<I2, J2, K2, L2>(
self,
rhs: L2
) -> OrRange2Iter<T, Q, U, R, I, J, K, Self, I2, J2, K2, L2> ⓘwhere
I2: RangeMOCIterator<T, Qty = Q>,
J2: RangeMOCIterator<U, Qty = R>,
K2: RangeMOC2ElemIt<T, Q, U, R, It1 = I2, It2 = J2>,
L2: RangeMOC2Iterator<T, Q, I2, U, R, J2, K2>,
source§impl<T: Idx, R: BufRead> RangeMOC2Iterator<T, Time<T>, RangeMocIter<T, Time<T>>, T, Hpx<T>, RangeMocIter<T, Hpx<T>>, RangeMOC2Elem<T, Time<T>, T, Hpx<T>>> for RangeMoc2DPreV2IterFromFits<T, R>
impl<T: Idx, R: BufRead> RangeMOC2Iterator<T, Time<T>, RangeMocIter<T, Time<T>>, T, Hpx<T>, RangeMocIter<T, Hpx<T>>, RangeMOC2Elem<T, Time<T>, T, Hpx<T>>> for RangeMoc2DPreV2IterFromFits<T, R>
fn into_range_moc2(self) -> RangeMOC2<T, Q, U, R>
fn or<I2, J2, K2, L2>(
self,
rhs: L2
) -> OrRange2Iter<T, Q, U, R, I, J, K, Self, I2, J2, K2, L2> ⓘwhere
I2: RangeMOCIterator<T, Qty = Q>,
J2: RangeMOCIterator<U, Qty = R>,
K2: RangeMOC2ElemIt<T, Q, U, R, It1 = I2, It2 = J2>,
L2: RangeMOC2Iterator<T, Q, I2, U, R, J2, K2>,
source§impl<'a, T: Idx> RangeMOC2Iterator<T, Time<T>, RangeMocIter<T, Time<T>>, T, Hpx<T>, RangeMocIter<T, Hpx<T>>, RangeMOC2Elem<T, Time<T>, T, Hpx<T>>> for TimeSpaceRangesIter<'a, T>
impl<'a, T: Idx> RangeMOC2Iterator<T, Time<T>, RangeMocIter<T, Time<T>>, T, Hpx<T>, RangeMocIter<T, Hpx<T>>, RangeMOC2Elem<T, Time<T>, T, Hpx<T>>> for TimeSpaceRangesIter<'a, T>
fn into_range_moc2(self) -> RangeMOC2<T, Q, U, R>
fn or<I2, J2, K2, L2>(
self,
rhs: L2
) -> OrRange2Iter<T, Q, U, R, I, J, K, Self, I2, J2, K2, L2> ⓘwhere
I2: RangeMOCIterator<T, Qty = Q>,
J2: RangeMOCIterator<U, Qty = R>,
K2: RangeMOC2ElemIt<T, Q, U, R, It1 = I2, It2 = J2>,
L2: RangeMOC2Iterator<T, Q, I2, U, R, J2, K2>,
impl<T: Eq + Idx> Eq for Time<T>
impl<T: Idx> StructuralPartialEq for Time<T>
Auto Trait Implementations§
impl<T> Freeze for Time<T>
impl<T> RefUnwindSafe for Time<T>where
T: RefUnwindSafe,
impl<T> Send for Time<T>
impl<T> Sync for Time<T>
impl<T> Unpin for Time<T>where
T: Unpin,
impl<T> UnwindSafe for Time<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T, Q> Bounded<T> for Q
impl<T, Q> Bounded<T> for Q
source§fn upper_bound_exclusive() -> T
fn upper_bound_exclusive() -> T
The largest possible value (exclusive) for a value of type T of the quantity Q.
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more