Skip to main content

Type

Struct Type 

Source
pub struct Type {
    pub oid: Oid,
    pub modifier: Option<i32>,
}
Expand description

Hyper SQL type information (OID + optional modifier).

The modifier encodes type-specific parameters using PostgreSQL conventions:

  • NUMERIC: ((precision << 16) | scale) + 4
  • VARCHAR: max_length + 4
  • CHAR: length + 4

The + 4 offset is a PostgreSQL convention that reserves values < 4 as “unspecified”. See SqlType::from_oid_and_modifier for the decoding logic.

Fields§

§oid: Oid

The type OID

§modifier: Option<i32>

Type modifier (e.g., VARCHAR length, NUMERIC precision/scale)

Implementations§

Source§

impl Type

Source

pub const fn new(oid: Oid) -> Type

Creates a new Type with the given OID and no modifier.

Source

pub const fn with_modifier(oid: Oid, modifier: i32) -> Type

Creates a new Type with the given OID and modifier.

Source

pub fn is_variable_length(&self) -> bool

Returns true if this is a variable-length type.

Source

pub fn fixed_size(&self) -> Option<usize>

Returns the fixed size of this type in bytes, if it has a fixed size.

Source§

impl Type

Source

pub const fn bool() -> Type

BOOL type

Source

pub const fn small_int() -> Type

SMALLINT type

Source

pub const fn int() -> Type

INT type

Source

pub const fn big_int() -> Type

BIGINT type

Source

pub const fn float() -> Type

REAL/FLOAT4 type

Source

pub const fn double() -> Type

DOUBLE PRECISION type

Source

pub const fn text() -> Type

TEXT type

Source

pub const fn byte_a() -> Type

BYTEA type

Source

pub const fn date() -> Type

DATE type

Source

pub const fn time() -> Type

TIME type

Source

pub const fn timestamp() -> Type

TIMESTAMP type

Source

pub const fn timestamp_tz() -> Type

TIMESTAMPTZ type

Source

pub const fn interval() -> Type

INTERVAL type

Source

pub const fn numeric() -> Type

NUMERIC type

Source

pub const fn geography() -> Type

GEOGRAPHY type

Source

pub const fn oid() -> Type

OID type

Source

pub const fn json() -> Type

JSON type

Source

pub const fn varchar(max_length: i32) -> Type

VARCHAR with max length

Source

pub const fn char(length: i32) -> Type

CHAR with fixed length

Source

pub const fn numeric_with_precision(precision: i32, scale: i32) -> Type

NUMERIC with precision and scale.

§Panics

Panics if:

§Example
use hyperdb_api_core::types::Type;

let decimal = Type::numeric_with_precision(10, 2); // NUMERIC(10, 2)

Trait Implementations§

Source§

impl Clone for Type

Source§

fn clone(&self) -> Type

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Type

Source§

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

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

impl PartialEq for Type

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 Type

Source§

impl Eq for Type

Source§

impl StructuralPartialEq for Type

Auto Trait Implementations§

§

impl Freeze for Type

§

impl RefUnwindSafe for Type

§

impl Send for Type

§

impl Sync for Type

§

impl Unpin for Type

§

impl UnsafeUnpin for Type

§

impl UnwindSafe for Type

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,