pub enum BindingProjection {
Property {
target: BindingTarget,
source: String,
alias: String,
},
Coalesce {
refs: Vec<BindingValueRef>,
alias: String,
},
}Expand description
Projection from row-local bindings.
use helix_ast::projection::{BindingProjection, BindingValueRef};
let projection = BindingProjection::coalesce(
vec![
BindingValueRef::binding("deployment", "$id"),
BindingValueRef::binding("owner", "$id"),
],
"workload_id",
);
assert_eq!(
sonic_rs::to_string(&projection).unwrap(),
r#"{"coalesce":{"refs":[{"target":{"binding":"deployment"},"source":"$id"},{"target":{"binding":"owner"},"source":"$id"}],"alias":"workload_id"}}"#
);Variants§
Property
Project a single property.
Fields
§
target: BindingTargetCurrent or named binding.
Coalesce
Project first present non-null reference.
Implementations§
Source§impl BindingProjection
impl BindingProjection
Sourcepub fn property(
target: BindingTarget,
source: impl Into<String>,
alias: impl Into<String>,
) -> BindingProjection
pub fn property( target: BindingTarget, source: impl Into<String>, alias: impl Into<String>, ) -> BindingProjection
Project a property.
Sourcepub fn current(
source: impl Into<String>,
alias: impl Into<String>,
) -> BindingProjection
pub fn current( source: impl Into<String>, alias: impl Into<String>, ) -> BindingProjection
Project from current traverser.
Sourcepub fn binding(
name: impl Into<String>,
source: impl Into<String>,
alias: impl Into<String>,
) -> BindingProjection
pub fn binding( name: impl Into<String>, source: impl Into<String>, alias: impl Into<String>, ) -> BindingProjection
Project from named binding.
Sourcepub fn coalesce(
refs: Vec<BindingValueRef>,
alias: impl Into<String>,
) -> BindingProjection
pub fn coalesce( refs: Vec<BindingValueRef>, alias: impl Into<String>, ) -> BindingProjection
Project first present non-null reference.
Trait Implementations§
Source§impl Clone for BindingProjection
impl Clone for BindingProjection
Source§fn clone(&self) -> BindingProjection
fn clone(&self) -> BindingProjection
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BindingProjection
impl Debug for BindingProjection
Source§impl<'de> Deserialize<'de> for BindingProjection
impl<'de> Deserialize<'de> for BindingProjection
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<BindingProjection, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<BindingProjection, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for BindingProjection
Source§impl PartialEq for BindingProjection
impl PartialEq for BindingProjection
Source§impl Serialize for BindingProjection
impl Serialize for BindingProjection
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for BindingProjection
Auto Trait Implementations§
impl Freeze for BindingProjection
impl RefUnwindSafe for BindingProjection
impl Send for BindingProjection
impl Sync for BindingProjection
impl Unpin for BindingProjection
impl UnsafeUnpin for BindingProjection
impl UnwindSafe for BindingProjection
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.