# Struct extendr_api::prelude::diag::DiagRef

```
pub struct DiagRef<'a, E>where
E: Entity,{
pub(crate) inner: ColRef<'a, E>,
}
```

## Expand description

Diagonal matrix view.

## Fields§

§`inner: ColRef<'a, E>`

## Implementations§

## Trait Implementations§

§### impl<LhsE, RhsE> AddAssign<&DiagRef<'_, RhsE>> for Diag<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> AddAssign<&DiagRef<'_, RhsE>> for Diag<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn add_assign(&mut self, other: &DiagRef<'_, RhsE>)

#### fn add_assign(&mut self, other: &DiagRef<'_, RhsE>)

Performs the

`+=`

operation. Read more§### impl<LhsE, RhsE> AddAssign<&DiagRef<'_, RhsE>> for DiagMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> AddAssign<&DiagRef<'_, RhsE>> for DiagMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn add_assign(&mut self, other: &DiagRef<'_, RhsE>)

#### fn add_assign(&mut self, other: &DiagRef<'_, RhsE>)

Performs the

`+=`

operation. Read more§### impl<LhsE, RhsE> AddAssign<DiagRef<'_, RhsE>> for Diag<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> AddAssign<DiagRef<'_, RhsE>> for Diag<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn add_assign(&mut self, other: DiagRef<'_, RhsE>)

#### fn add_assign(&mut self, other: DiagRef<'_, RhsE>)

Performs the

`+=`

operation. Read more§### impl<LhsE, RhsE> AddAssign<DiagRef<'_, RhsE>> for DiagMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> AddAssign<DiagRef<'_, RhsE>> for DiagMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn add_assign(&mut self, rhs: DiagRef<'_, RhsE>)

#### fn add_assign(&mut self, rhs: DiagRef<'_, RhsE>)

Performs the

`+=`

operation. Read more§### impl<E, RhsE> Div<f32> for &DiagRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,

### impl<E, RhsE> Div<f32> for &DiagRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,

§### impl<E, RhsE> Div<f64> for &DiagRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,

### impl<E, RhsE> Div<f64> for &DiagRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,

§### impl<E, RhsE> Mul<f32> for &DiagRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,

### impl<E, RhsE> Mul<f32> for &DiagRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,

§### impl<E, RhsE> Mul<f64> for &DiagRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,

### impl<E, RhsE> Mul<f64> for &DiagRef<'_, RhsE>where
E: ComplexField,
RhsE: Conjugate<Canonical = E>,

§### impl<'short, E> ReborrowMut<'short> for DiagRef<'_, E>where
E: Entity,

### impl<'short, E> ReborrowMut<'short> for DiagRef<'_, E>where
E: Entity,

§### impl<LhsE, RhsE> SubAssign<&DiagRef<'_, RhsE>> for Diag<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> SubAssign<&DiagRef<'_, RhsE>> for Diag<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn sub_assign(&mut self, other: &DiagRef<'_, RhsE>)

#### fn sub_assign(&mut self, other: &DiagRef<'_, RhsE>)

Performs the

`-=`

operation. Read more§### impl<LhsE, RhsE> SubAssign<&DiagRef<'_, RhsE>> for DiagMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> SubAssign<&DiagRef<'_, RhsE>> for DiagMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn sub_assign(&mut self, other: &DiagRef<'_, RhsE>)

#### fn sub_assign(&mut self, other: &DiagRef<'_, RhsE>)

Performs the

`-=`

operation. Read more§### impl<LhsE, RhsE> SubAssign<DiagRef<'_, RhsE>> for Diag<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> SubAssign<DiagRef<'_, RhsE>> for Diag<LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn sub_assign(&mut self, other: DiagRef<'_, RhsE>)

#### fn sub_assign(&mut self, other: DiagRef<'_, RhsE>)

Performs the

`-=`

operation. Read more§### impl<LhsE, RhsE> SubAssign<DiagRef<'_, RhsE>> for DiagMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

### impl<LhsE, RhsE> SubAssign<DiagRef<'_, RhsE>> for DiagMut<'_, LhsE>where
LhsE: ComplexField,
RhsE: Conjugate<Canonical = LhsE>,

§#### fn sub_assign(&mut self, rhs: DiagRef<'_, RhsE>)

#### fn sub_assign(&mut self, rhs: DiagRef<'_, RhsE>)

Performs the

`-=`

operation. Read more### impl<E> Copy for DiagRef<'_, E>where
E: Entity,

## Auto Trait Implementations§

### impl<'a, E> Freeze for DiagRef<'a, E>

### impl<'a, E> RefUnwindSafe for DiagRef<'a, E>where
<<E as Entity>::Group as ForCopyType>::FaerOfCopy<NonNull<<E as Entity>::Unit>>: RefUnwindSafe,
E: RefUnwindSafe,

### impl<'a, E> Send for DiagRef<'a, E>

### impl<'a, E> Sync for DiagRef<'a, E>

### impl<'a, E> Unpin for DiagRef<'a, E>

### impl<'a, E> UnwindSafe for DiagRef<'a, E>where
<<E as Entity>::Group as ForCopyType>::FaerOfCopy<NonNull<<E as Entity>::Unit>>: UnwindSafe,
E: RefUnwindSafe,

## 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

source§### impl<T> CloneToUninit for Twhere
T: Clone,

### impl<T> CloneToUninit for Twhere
T: Clone,

source§#### unsafe fn clone_to_uninit(&self, dst: *mut T)

#### unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (

`clone_to_uninit`

)source§### impl<T> IntoEither for T

### impl<T> IntoEither for T

source§#### fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

#### fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts

`self`

into a `Left`

variant of `Either<Self, Self>`

if `into_left`

is `true`

.
Converts `self`

into a `Right`

variant of `Either<Self, Self>`

otherwise. Read moresource§#### fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ

#### fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ

Converts

`self`

into a `Left`

variant of `Either<Self, Self>`

if `into_left(&self)`

returns `true`

.
Converts `self`

into a `Right`

variant of `Either<Self, Self>`

otherwise. Read more