#[repr(transparent)]
pub struct ConstantExpression { /* private fields */ }

Implementations§

source§

impl ConstantExpression

source

pub fn for_value(value: &Value) -> ConstantExpression

source

pub fn value(&self) -> Value

source§

impl ConstantExpression

source

pub fn upcast(self) -> Expression

source

pub fn upcast_ref(&self) -> &Expression

source§

impl ConstantExpression

source

pub fn new<V: ToValue>(value: &V) -> Self

source

pub fn value_as<V: for<'b> FromValue<'b> + 'static>(&self) -> V

Similar to Self::value but panics if the value is of a different type.

Methods from Deref<Target = Expression>§

source

pub const NONE: Option<&'static Expression> = None

source

pub fn bind( &self, target: &impl IsA<Object>, property: &str, this_: Option<&impl IsA<Object>> ) -> ExpressionWatch

source

pub fn value_type(&self) -> Type

source

pub fn is_static(&self) -> bool

source

pub fn watch<P: Fn() + 'static>( &self, this_: Option<&impl IsA<Object>>, notify: P ) -> ExpressionWatch

source

pub fn is<E: IsExpression>(&self) -> bool

source

pub fn downcast_ref<E: IsExpression>(&self) -> Option<&E>

source

pub fn type_(&self) -> Type

source

pub fn evaluate(&self, this: Option<&impl IsA<Object>>) -> Option<Value>

source

pub fn evaluate_as<V: for<'b> FromValue<'b> + 'static, T: IsA<Object>>( &self, this: Option<&T> ) -> Option<V>

Similar to Self::evaluate but panics if the value is of a different type.

source

pub fn chain_property<T: IsA<Object>>( &self, property_name: &str ) -> PropertyExpression

Create a PropertyExpression that looks up for property_name with self as parameter. This is useful in long chains of Expressions.

source

pub fn chain_closure<R>(&self, closure: RustClosure) -> ClosureExpressionwhere R: ValueType,

Create a ClosureExpression from a glib::Closure with self as the second parameter and R as the return type. The return type is checked at run-time and must always be specified. This is useful in long chains of Expressions when using the glib::closure! macro.

Note that the first parameter will always be the this object bound to the expression. If None is passed as this then the type of the first parameter must be Option<glib::Object> otherwise type checking will panic.

use gtk::prelude::*;
use gtk::glib;
use glib::{closure, Object};

let button = gtk::Button::new();
button.set_label("Hello");
let label = button
    .property_expression("label")
    .chain_closure::<String>(closure!(|_: Option<Object>, label: &str| {
        format!("{} World", label)
    }))
    .evaluate_as::<String, _>(gtk::Widget::NONE);
assert_eq!(label.unwrap(), "Hello World");
source

pub fn chain_closure_with_callback<F, R>(&self, f: F) -> ClosureExpressionwhere F: Fn(&[Value]) -> R + 'static, R: ValueType,

Create a ClosureExpression with self as the second parameter. This is useful in long chains of Expressions.

Trait Implementations§

source§

impl AsRef<Expression> for ConstantExpression

source§

fn as_ref(&self) -> &Expression

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for ConstantExpression

source§

fn clone(&self) -> Self

Returns a copy 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 ConstantExpression

source§

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

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

impl Deref for ConstantExpression

§

type Target = Expression

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl Display for ConstantExpression

source§

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

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

impl<'a> FromValue<'a> for ConstantExpression

§

type Checker = GenericValueTypeOrNoneChecker<ConstantExpression>

Value type checker.
source§

unsafe fn from_value(value: &'a Value) -> Self

Get the contained value from a Value. Read more
source§

impl StaticType for ConstantExpression

source§

fn static_type() -> Type

Returns the type identifier of Self.
source§

impl ToValue for ConstantExpression

source§

fn to_value(&self) -> Value

Convert a value to a Value.
source§

fn value_type(&self) -> Type

Returns the type identifer of self. Read more
source§

impl ToValueOptional for ConstantExpression

source§

fn to_value_optional(s: Option<&Self>) -> Value

Convert an Option to a Value.
source§

impl ValueType for ConstantExpression

§

type Type = ConstantExpression

Type to get the Type from. Read more
source§

impl IsExpression for ConstantExpression

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,

source§

impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,

source§

impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,

source§

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

const: unstable · 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> StaticTypeExt for Twhere T: StaticType,

source§

fn ensure_type()

Ensures that the type has been registered with the type system.
source§

impl<T> ToClosureReturnValue for Twhere T: ToValue,

source§

impl<T> ToOwned for Twhere T: Clone,

§

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> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

impl<T> TryFromClosureReturnValue for Twhere T: for<'a> FromValue<'a> + StaticType + 'static,

source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

impl<'a, T, C> FromValueOptional<'a> for Twhere T: FromValue<'a, Checker = C>, C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError>,