ColonSegment

Enum ColonSegment 

Source
pub enum ColonSegment {
    Rectum,
    Sigmoid,
    Descending,
    SplenicFlexure,
    Transverse,
    HepaticFlexure,
    Ascending,
    Cecum,
}
Expand description

The eight anatomical regions of the colon.

Listed in order from entry (rectum) to terminus (cecum), matching the direction of colonoscopy navigation.

t=0.0                                                    t=1.0
  │                                                        │
  ▼                                                        ▼
Rectum → Sigmoid → Descending → Splenic → Transverse → Hepatic → Ascending → Cecum

Variants§

§

Rectum

Entry point, relatively straight. (t ≈ 0.00-0.08)

§

Sigmoid

S-shaped curve, highly variable between individuals. (t ≈ 0.08-0.20)

§

Descending

Runs down the left side of the abdomen. (t ≈ 0.20-0.35)

§

SplenicFlexure

Sharp ~90° bend near the spleen. (t ≈ 0.35-0.40)

§

Transverse

Crosses the abdomen horizontally. (t ≈ 0.40-0.65)

§

HepaticFlexure

Sharp ~90° bend near the liver. (t ≈ 0.65-0.70)

§

Ascending

Runs up the right side of the abdomen. (t ≈ 0.70-0.90)

§

Cecum

Pouch at terminus, connects to small intestine. (t ≈ 0.90-1.00)

Implementations§

Source§

impl ColonSegment

Source

pub const ALL: [ColonSegment; 8]

All segments in anatomical order (rectum to cecum).

Source

pub const DEFAULT_BOUNDARIES: [f32; 9]

Default t-parameter boundaries for each segment.

These are approximate values based on average adult anatomy. Actual boundaries vary with ColonConfig seed.

Source

pub fn at_t(t: f32) -> Self

Get the segment containing parameter t.

Uses default boundaries. For seed-varied boundaries, use ColonCurve::segment_at().

Source

pub fn index(&self) -> usize

Index of this segment (0 = Rectum, 7 = Cecum).

Source

pub fn is_flexure(&self) -> bool

Whether this segment is a flexure (sharp bend).

Trait Implementations§

Source§

impl AnatomicalSegment for ColonSegment

Source§

fn name(&self) -> &'static str

Human-readable name of this segment.
Source§

fn t_range(&self) -> (f32, f32)

Parameter range [start, end) for this segment. Read more
Source§

fn contains(&self, t: f32) -> bool

Whether parameter t falls within this segment.
Source§

impl Clone for ColonSegment

Source§

fn clone(&self) -> ColonSegment

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ColonSegment

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for ColonSegment

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ColonSegment

Source§

fn eq(&self, other: &ColonSegment) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for ColonSegment

Source§

impl Eq for ColonSegment

Source§

impl StructuralPartialEq for ColonSegment

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V