OrderByField

Struct OrderByField 

Source
pub struct OrderByField {
    pub column: Cow<'static, str>,
    pub order: SortOrder,
    pub nulls: Option<NullsOrder>,
}
Expand description

Order by specification for a single field.

Fields§

§column: Cow<'static, str>

The column name to order by.

§order: SortOrder

The sort order.

§nulls: Option<NullsOrder>

Null handling (optional).

Implementations§

Source§

impl OrderByField

Source

pub fn new(column: impl Into<Cow<'static, str>>, order: SortOrder) -> Self

Create a new order by field.

Source

pub const fn new_static(column: &'static str, order: SortOrder) -> Self

Create a new order by field with a static column name (zero allocation).

Source

pub fn nulls(self, nulls: NullsOrder) -> Self

Set null handling.

Source

pub fn asc(column: impl Into<Cow<'static, str>>) -> Self

Create an ascending order.

Source

pub fn desc(column: impl Into<Cow<'static, str>>) -> Self

Create a descending order.

Source

pub const fn asc_static(column: &'static str) -> Self

Create an ascending order with a static column name (zero allocation).

Source

pub const fn desc_static(column: &'static str) -> Self

Create a descending order with a static column name (zero allocation).

Source

pub fn to_sql(&self) -> String

Generate the SQL for this order by field.

Optimized to write directly to a pre-sized buffer.

Source

pub fn write_sql(&self, buffer: &mut String)

Write the SQL directly to a buffer (zero allocation).

§Examples
use prax_query::types::OrderByField;

let field = OrderByField::desc("created_at");
let mut buffer = String::with_capacity(64);
buffer.push_str("ORDER BY ");
field.write_sql(&mut buffer);
assert_eq!(buffer, "ORDER BY created_at DESC");
Source

pub fn estimated_len(&self) -> usize

Get the estimated SQL length for capacity planning.

Trait Implementations§

Source§

impl Clone for OrderByField

Source§

fn clone(&self) -> OrderByField

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 OrderByField

Source§

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

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

impl From<OrderByField> for OrderBy

Source§

fn from(field: OrderByField) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for OrderByField

Source§

fn eq(&self, other: &OrderByField) -> 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 Eq for OrderByField

Source§

impl StructuralPartialEq for OrderByField

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