Skip to main content

AddArray

Struct AddArray 

Source
pub struct AddArray;
Expand description

This rule will array concat using + operator

“foo”[0,1] + ‘x’ => [‘f’, ‘o’, ‘x’]

§Example

extern crate tree_sitter;
extern crate tree_sitter_powershell;

use minusone::ps::build_powershell_tree;
use minusone::ps::forward::Forward;
use minusone::ps::integer::{ParseInt, AddInt};
use minusone::ps::linter::Linter;
use minusone::ps::string::ParseString;
use minusone::ps::access::AccessString;
use minusone::ps::join::JoinOperator;
use minusone::ps::array::{ComputeArrayExpr, ParseArrayLiteral, AddArray};

let mut tree = build_powershell_tree("-join ('foo'[0,1] + 'x')").unwrap();
tree.apply_mut(&mut (
    ParseInt::default(),
    Forward::default(),
    ComputeArrayExpr::default(),
    ParseString::default(),
    JoinOperator::default(),
    AccessString::default(),
    ParseArrayLiteral::default(),
    AddArray::default()
    )
).unwrap();

let mut ps_litter_view = Linter::new();
tree.apply(&mut ps_litter_view).unwrap();

assert_eq!(ps_litter_view.output, "\"fox\"");

Trait Implementations§

Source§

impl Default for AddArray

Source§

fn default() -> AddArray

Returns the “default value” for a type. Read more
Source§

impl<'a> RuleMut<'a> for AddArray

Source§

type Language = Powershell

Source§

fn enter( &mut self, _node: &mut NodeMut<'a, Self::Language>, _flow: ControlFlow, ) -> MinusOneResult<()>

Source§

fn leave( &mut self, node: &mut NodeMut<'a, Self::Language>, _flow: ControlFlow, ) -> MinusOneResult<()>

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