Trait core::ops::ShlAssign [] [src]

pub trait ShlAssign<Rhs> {
    fn shl_assign(&mut self, Rhs);
}
Unstable (op_assign_traits #28235)

: recently added

The ShlAssign trait is used to specify the functionality of <<=.

Examples

A trivial implementation of ShlAssign. When Foo <<= Foo happens, it ends up calling shl_assign, and therefore, main prints Shifting left!.

#![feature(augmented_assignments)] #![feature(op_assign_traits)] use std::ops::ShlAssign; #[derive(Copy, Clone)] struct Foo; impl ShlAssign<Foo> for Foo { fn shl_assign(&mut self, _rhs: Foo) { println!("Shifting left!"); } } #[allow(unused_assignments)] fn main() { let mut foo = Foo; foo <<= Foo; }
#![feature(augmented_assignments)]
#![feature(op_assign_traits)]

use std::ops::ShlAssign;

#[derive(Copy, Clone)]
struct Foo;

impl ShlAssign<Foo> for Foo {
    fn shl_assign(&mut self, _rhs: Foo) {
        println!("Shifting left!");
    }
}

fn main() {
    let mut foo = Foo;
    foo <<= Foo;
}

Required Methods

fn shl_assign(&mut self, Rhs)

Unstable (op_assign_traits #28235)

: recently added

The method for the <<= operator

Implementors