Skip to main content

ExpressionOwner

Enum ExpressionOwner 

Source
pub enum ExpressionOwner<'a> {
    Table {
        table: &'a str,
    },
    Column {
        table: &'a str,
        column: &'a str,
    },
    Measure {
        table: &'a str,
        measure: &'a str,
    },
    Partition {
        table: &'a str,
        partition: &'a str,
    },
    Role {
        role: &'a str,
    },
    CalculationItem {
        table: &'a str,
        item: &'a str,
    },
    Expression {
        name: &'a str,
    },
    Function {
        name: &'a str,
    },
    ReportMeasure {
        measure: &'a str,
    },
}
Expand description

The model or report object an enumerated expression belongs to.

Names are borrowed from the AST, so enumerating a model’s expressions allocates nothing. Call to_object_id to materialize a graph node key — once per node the graph actually creates, rather than once per expression.

The variants are exactly the objects that can own an expression, which is why there is no hierarchy here: hierarchies reference columns but define no DAX. The one report-side variant is the report-level measure, whose DAX body is an expression source the model knows nothing about (see crate::report::ReportModel::dax_expressions).

Variants§

§

Table

A table, owning its detail-rows expression.

Fields

§table: &'a str

Table name.

§

Column

A calculated column.

Fields

§table: &'a str

Owning table.

§column: &'a str

Column name.

§

Measure

A measure, owning its expression, format string, detail rows, and KPI.

Fields

§table: &'a str

Home table.

§measure: &'a str

Measure name.

§

Partition

A partition, owning its M or DAX source query.

Fields

§table: &'a str

Owning table.

§partition: &'a str

Partition name.

§

Role

A security role, owning its row-level-security filters.

Fields

§role: &'a str

Role name.

§

CalculationItem

A calculation item.

Fields

§table: &'a str

Calculation group table.

§item: &'a str

Calculation item name.

§

Expression

A model-level shared M expression.

Fields

§name: &'a str

Expression name.

§

Function

A user-defined DAX function.

Fields

§name: &'a str

Function name.

§

ReportMeasure

A report-level measure (reportExtensions.json), owning its expression and dynamic format string. Lives in the report, not the model.

Fields

§measure: &'a str

Measure name, report-scoped.

Implementations§

Source§

impl ExpressionOwner<'_>

Source

pub fn to_object_id(&self) -> ObjectId

The owner’s stable graph-node identity, allocating the owned name keys.

Trait Implementations§

Source§

impl<'a> Clone for ExpressionOwner<'a>

Source§

fn clone(&self) -> ExpressionOwner<'a>

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<'a> Copy for ExpressionOwner<'a>

Source§

impl<'a> Debug for ExpressionOwner<'a>

Source§

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

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

impl<'a> Eq for ExpressionOwner<'a>

Source§

impl<'a> Hash for ExpressionOwner<'a>

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<'a> PartialEq for ExpressionOwner<'a>

Source§

fn eq(&self, other: &ExpressionOwner<'a>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl<'a> StructuralPartialEq for ExpressionOwner<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for ExpressionOwner<'a>

§

impl<'a> RefUnwindSafe for ExpressionOwner<'a>

§

impl<'a> Send for ExpressionOwner<'a>

§

impl<'a> Sync for ExpressionOwner<'a>

§

impl<'a> Unpin for ExpressionOwner<'a>

§

impl<'a> UnsafeUnpin for ExpressionOwner<'a>

§

impl<'a> UnwindSafe for ExpressionOwner<'a>

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

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

fn try_from(value: U) -> Result<T, !>

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.