# shrinkage::HybridCoordinateDescent

Shrinkage for Rust · 0.3.0

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
pub struct HybridCoordinateDescent<V = Vec<f64>>
```

Coordinate descent with periodic proximal-gradient steps for clustered lasso, chain fused lasso, and SLOPE with Gaussian or logistic loss. 

Begin with a PG transition on the working set, then alternate five cluster sweeps with one PG transition. PG can split zero and nonzero blocks; CD moves entire exact-equality blocks and merges exact ties. Only a fresh full-space PG mapping, including the intercept derivative, certifies convergence. Diagnostic calls never advance or alter the iteration. Chain blocks are contiguous segments, with zero-weight edges kept as cuts. SLOPE blocks group exact magnitudes while retaining individual signs. Its zero block stays fixed during sweeps and can reactivate through full PG. Binomial problems use IRLS with weighted hybrid inner solves and Armijo backtracking on the original objective. Only the original-loss mapping certifies logistic convergence. Predictions remain linear predictors. Dynamic Gap Safe zero screening is enabled by default. Restrictions retain the complete original penalty, and certificates always use the original loss. Working sets are independently enabled through [`Self::working_set_policy`](<6e142c2de8c70807e35ff7553fffda094241be993dc7a332ee193688dc1f04bf#method-working_set_policy-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86>). Disable both restrictions for complete matrix sweeps. 

`V` is the backend's native vector, as for [`crate::ProximalGradient`](<dbf207e0ed64fdc5c0f5cc6c364e567527bca92737c69f45f608ed62e8d669d5>). Aggregates use dense storage: `O(n * K + p + n)` for `K` clusters, retaining buffers at their high-water capacities. Staging a PG rebuild retains both old and candidate aggregates. No normalized design or Gram is formed. 

```rust
use faer::{Col, Mat};
use shrinkage::{ClusteredLasso, Gaussian, HybridCoordinateDescent, Problem};
let x = Mat::from_fn(4, 2, |i, j| ((i + 2 * j) % 3) as f64);
let fit = Problem::new(&x, Gaussian::new(&[1.0, 2.0, 0.0, 3.0]),
    ClusteredLasso::new(0.1, 0.2))
    .fit_with(&HybridCoordinateDescent::<Col<f64>>::new())?;
let predictions = fit.predict(&x)?;
```

<a id="impl-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

## Inherent implementation

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<V> HybridCoordinateDescent<V>
```

<a id="method-check_every-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

### `check_every`

```rust
pub fn check_every(self, count: usize) -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

Check every positive number of iterations, also initially and at budget. 

<a id="method-cluster_sweeps-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

### `cluster_sweeps`

```rust
pub fn cluster_sweeps(self, count: usize) -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

Set the positive number of complete sweeps between PG transitions. 

<a id="method-max_inner_iterations-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

### `max_inner_iterations`

```rust
pub fn max_inner_iterations(self, count: usize) -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

Limit PG transitions plus sweeps per logistic quadratic model (default 1,000). Inexact models can still provide accepted descent directions. Gaussian fits ignore this limit. The total `max_iterations` also applies. 

<a id="method-max_iterations-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

### `max_iterations`

```rust
pub fn max_iterations(self, count: usize) -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

Limit the total number of committed PG transitions and complete sweeps. Logistic fits share this budget across all quadratic subproblems. 

<a id="method-max_outer_backtracks-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

### `max_outer_backtracks`

```rust
pub fn max_outer_backtracks(self, count: usize) -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

Limit logistic step halvings after the full trial (default 100). This differs from curvature backtracking in [`HybridStep`](<8c2324572d804bcaf844c43f1cf5a8cfa03c0ef3439c88e54a8dcdd948cdc85e>). 

<a id="method-max_outer_iterations-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

### `max_outer_iterations`

```rust
pub fn max_outer_iterations(self, count: usize) -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

Limit accepted logistic IRLS steps (default 100). Gaussian fits ignore it. 

<a id="method-new-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

### `new`

```rust
pub fn new() -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

Use mapping tolerance `1e-6`, 10,000 iterations, five sweeps per PG, checks every ten iterations, backtracking, and safe zero screening. Logistic fits allow 100 outer steps, 1,000 inner iterations per model, and 100 step halvings. 

<a id="method-screening-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

### `screening`

```rust
pub fn screening(self, enabled: bool) -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

Enable dynamic Gap Safe zero screening, enabled by default. Certificates and stopping checks use the original loss and full design. Logistic quadratic models retain restrictions certified at outer iterates. 

<a id="method-step_policy-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

### `step_policy`

```rust
pub fn step_policy(self, step: HybridStep) -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

Select backtracking or a computed fixed curvature upper bound. 

<a id="method-terminate_on-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

### `terminate_on`

```rust
pub fn terminate_on(self, criterion: StoppingCriterion) -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

Select a stopping rule. Only absolute PG mapping is supported. 

<a id="method-tolerance-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

### `tolerance`

```rust
pub fn tolerance(self, absolute: f64) -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

Set the absolute infinity-norm full PG mapping tolerance. 

<a id="method-working_set_policy-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

### `working_set_policy`

```rust
pub fn working_set_policy(self, policy: WorkingSetPolicy) -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

Select the working-set policy. The last working-set setter wins. 

<a id="method-working_sets-dcb61ec22f60aa133c51d7682e7d54ab3d5e89091ad7024c3dfa382ced45bd86"></a>

### `working_sets`

```rust
pub fn working_sets(self, enabled: bool) -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

Enable automatic working sets, or disable heuristic restrictions. 

<a id="impl-cdf2158fb60536d157eb5d1913a12cb6c17f19ce3789f2886f5c701086ed8b4f"></a>

## Implementation of Clone

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<V: core::clone::Clone> Clone for HybridCoordinateDescent<V>
```

<a id="method-clone-cdf2158fb60536d157eb5d1913a12cb6c17f19ce3789f2886f5c701086ed8b4f"></a>

### `clone`

```rust
fn clone(&self) -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

<a id="impl-8970cf303df6d94e0d5a2ced6b4cad4f7861953645c28a49f931c5323fe3db09"></a>

## Implementation of Copy

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<V: core::marker::Copy> Copy for HybridCoordinateDescent<V>
```

<a id="impl-987e48ecf0c1a97ddf93fe7f91371eda3d5be190e73553bcfd0139fd9b3d2f24"></a>

## Implementation of Debug

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<V: core::fmt::Debug> Debug for HybridCoordinateDescent<V>
```

<a id="method-fmt-987e48ecf0c1a97ddf93fe7f91371eda3d5be190e73553bcfd0139fd9b3d2f24"></a>

### `fmt`

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

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

<a id="impl-cef0e449b1081807531a1a49af1f0f4e3635bf1805031e6fc76207e117c6dcc1"></a>

## Implementation of Default

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<V> Default for HybridCoordinateDescent<V>
```

<a id="method-default-cef0e449b1081807531a1a49af1f0f4e3635bf1805031e6fc76207e117c6dcc1"></a>

### `default`

```rust
fn default() -> Self
```

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

<a id="impl-85f668ca84ec1ab5693f5bf8f1e6b51243ed412ffb473434f01ab402f89a9847"></a>

## [Implementation of ObservedSolver](<a6f9ede80f6a0ee77f85e776916acea8bcaa0a49156d6cf183b3c41ae61db21a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid/irls.rs>)

```rust
impl<M, V, P> ObservedSolver<Problem<&M, Binomial<'_>, P>> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, V: ProximalVector, P: ReducedCoordinatePenalty
```

<a id="impl-57b77277ace6e85d02648d67e220fd6dc33846057d49c04b47bd2c94186dc461"></a>

## [Implementation of ObservedSolver](<a6f9ede80f6a0ee77f85e776916acea8bcaa0a49156d6cf183b3c41ae61db21a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<M, V> ObservedSolver<Problem<&M, Gaussian<'_>, ChainFusedLasso>> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, V: ProximalVector
```

<a id="impl-12f743672c62067400884e3408559fbdf00613f6cdaddbd10b8e05e7e0a99b22"></a>

## [Implementation of ObservedSolver](<a6f9ede80f6a0ee77f85e776916acea8bcaa0a49156d6cf183b3c41ae61db21a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<M, V> ObservedSolver<Problem<&M, Gaussian<'_>, ClusteredLasso>> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, V: ProximalVector
```

<a id="impl-be70d8867c7f1faf85156966c4b75ac075f2819325ab868b2bd749969a04d250"></a>

## [Implementation of ObservedSolver](<a6f9ede80f6a0ee77f85e776916acea8bcaa0a49156d6cf183b3c41ae61db21a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<M, V> ObservedSolver<Problem<&M, Gaussian<'_>, Slope>> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, V: ProximalVector
```

<a id="impl-ee8c2a552136f89f340b4c4785c6c0518a9d2ad80472b47b41c9550ecfdfaaa0"></a>

## [Implementation of PathSolver](<f5c72d3e4429c416ab6028c635ab099e02363494611b3296ed38741c10c0f4cf>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid/path.rs>)

```rust
impl<D: SmoothDatafit, P, Q: shrinkage::ProximalPenalty, V> PathSolver<Problem<Box<dyn RuntimeDesign + '_>, D, P>, Q> for HybridCoordinateDescent<V>
```

<a id="impl-f02be82e8f7f258c0258731d5f0548b03a1ceff7677446f33e22f5a50d2edea9"></a>

## [Implementation of PathSolver](<f5c72d3e4429c416ab6028c635ab099e02363494611b3296ed38741c10c0f4cf>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid/path.rs>)

```rust
impl<M, D, P, Q, V> PathSolver<Problem<&M, D, P>, Q> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, D: HybridPathDatafit, Q: ReducedCoordinatePenalty, V: ProximalVector
```

<a id="impl-2955dac1be8fadde2a6cb49810fb977d9849c0669ea9d2c4e59aac577d103d36"></a>

## [Implementation of RegularizationPathSolver](<f0683a430ead6c2ec6bb1d72ad941d17f0612d3092504128df751d377350193c>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid/path.rs>)

```rust
impl<D: shrinkage::PathDatafit, P: PathPenalty, V> RegularizationPathSolver<Problem<Box<dyn RuntimeDesign + '_>, D, P>> for HybridCoordinateDescent<V>
```

<a id="impl-713b3edbfeeea1beeaa7d41dfbcffe25d2c3368c5a681bbf811bc035e0d7c848"></a>

## [Implementation of RegularizationPathSolver](<f0683a430ead6c2ec6bb1d72ad941d17f0612d3092504128df751d377350193c>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid/path.rs>)

```rust
impl<M, D, P, V> RegularizationPathSolver<Problem<&M, D, P>> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, D: HybridPathDatafit, P: PathPenalty, <P as PathPenalty>::AtStrength: ReducedCoordinatePenalty, V: ProximalVector
```

<a id="impl-d4f9004d8868597f92dc06ff48e3f9461e58f68c6ba90f37c192b1245f925eb3"></a>

## [Implementation of Solver](<f80ebf14b213d3129f84bb1ccc4912d7d7123fed16e872d24da1a9f5ef741b0a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid/irls.rs>)

```rust
impl<M, V, P> Solver<Problem<&M, Binomial<'_>, P>> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, V: ProximalVector, P: ReducedCoordinatePenalty
```

<a id="impl-eb138a829bbcf171c09e97ddac534760473d645ff09af2a0b0cc4b3ae11e7883"></a>

## [Implementation of Solver](<f80ebf14b213d3129f84bb1ccc4912d7d7123fed16e872d24da1a9f5ef741b0a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<M, V> Solver<Problem<&M, Gaussian<'_>, ChainFusedLasso>> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, V: ProximalVector
```

<a id="impl-922c9aea132b463a0c1b336cdf2a08500e6b9124018a84d76f3d90c9fb8548d9"></a>

## [Implementation of Solver](<f80ebf14b213d3129f84bb1ccc4912d7d7123fed16e872d24da1a9f5ef741b0a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<M, V> Solver<Problem<&M, Gaussian<'_>, ClusteredLasso>> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, V: ProximalVector
```

<a id="impl-340fd9ee2f10f208887c00cdc5bfa0d730301ade8be911e486aeac9ba0101587"></a>

## [Implementation of Solver](<f80ebf14b213d3129f84bb1ccc4912d7d7123fed16e872d24da1a9f5ef741b0a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<M, V> Solver<Problem<&M, Gaussian<'_>, Slope>> for HybridCoordinateDescent<V> where M: RawColumns<f64> + ColumnStats<f64> + MatVecInto<V> + MatTransposeVecInto<V> + ?Sized, V: ProximalVector
```

<a id="impl-5d77e3aa7e5c8fae320cf517509afccf5a8f20a1f45e1f9e6bad916d0073f18c"></a>

## [Implementation of Solver](<f80ebf14b213d3129f84bb1ccc4912d7d7123fed16e872d24da1a9f5ef741b0a>)

[Source](<https://github.com/jolars/shrinkage/blob/eeafe449edce19d3c552a03060f681ae3891af74/src/solver/hybrid.rs>)

```rust
impl<V> Solver<Problem<Box<dyn RuntimeDesign + '_>, Box<dyn SmoothDatafit<Error = FitError> + '_>, Box<dyn ProximalPenalty<Error = FitError> + '_>>> for HybridCoordinateDescent<V>
```

<a id="impl-577e2a421c9775d9c55fffc12ffbd8ad03413602d4efbbe235c7731a52b4cd1c"></a>

## Implementation of Freeze

```rust
impl<V> Freeze for HybridCoordinateDescent<V> where PhantomData<V>: Freeze
```

<a id="impl-22e0cd08cbbd753c7487af82d7d823113a3784e9b84afee5bc08e28d485405f2"></a>

## Implementation of RefUnwindSafe

```rust
impl<V> RefUnwindSafe for HybridCoordinateDescent<V> where PhantomData<V>: RefUnwindSafe
```

<a id="impl-efa6f752690e4b76841dbdacd716d0862622b523c3a438db71d41189ca283b82"></a>

## Implementation of Send

```rust
impl<V> Send for HybridCoordinateDescent<V> where PhantomData<V>: Send
```

<a id="impl-5040cca50f7f59fb38487a7f2467b4b52b44a7497f564ce86fd229e361c545b8"></a>

## Implementation of Sync

```rust
impl<V> Sync for HybridCoordinateDescent<V> where PhantomData<V>: Sync
```

<a id="impl-4ad02d3193cc1a0cec7caf2dc62371ea939d46b103e9c211f838dc4462cf4b58"></a>

## Implementation of Unpin

```rust
impl<V> Unpin for HybridCoordinateDescent<V> where PhantomData<V>: Unpin
```

<a id="impl-5ea5aa558d586a4b5aba6f5e5312c037795f9db9d95dd83beecebd3fc0268cdb"></a>

## Implementation of UnsafeUnpin

```rust
impl<V> UnsafeUnpin for HybridCoordinateDescent<V> where PhantomData<V>: UnsafeUnpin
```

<a id="impl-68efa6116cab877760657890d7b92fd48c6ff64e9750b6df0fcacc9f931f4473"></a>

## Implementation of UnwindSafe

```rust
impl<V> UnwindSafe for HybridCoordinateDescent<V> where PhantomData<V>: UnwindSafe
```

<a id="impl-1e5682dc18e03c648aa9b125290c107c1e8d96ce8a179a8532e4057da4daf0cd"></a>

## Implementation of Any

```rust
impl<T> Any for T where T: 'static + ?Sized
```

<a id="impl-6c0b25c2c92cdb117802d9c0a4c70afc9a8bfb0da875bc6e66191e2349fcdf3f"></a>

## Implementation of Borrow

```rust
impl<T> Borrow<T> for T where T: ?Sized
```

<a id="impl-796e80d926348273a22b04d8e84f510693b11c06ec57c3c3e2e8c1524094a85c"></a>

## Implementation of BorrowMut

```rust
impl<T> BorrowMut<T> for T where T: ?Sized
```

<a id="impl-8360e4092e7ec4a05a26dd304cd739398f0cacc50c8d08dd5be0223d1a08d02e"></a>

## Implementation of ByRef

```rust
impl<T> ByRef<T> for T
```

<a id="impl-dbb1293b7b5dd80c4d9a98cfdd6843dc7470224c0b1387731cd418da07046d7b"></a>

## Implementation of CastableFrom

```rust
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT where ST: ?Sized, DT: ?Sized
```

<a id="impl-97b65e7dfc44b5ecaa495a3a19fe737914a1e9f8532200cf8f46191314e7d777"></a>

## Implementation of CastableFrom

```rust
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT where ST: ?Sized, DT: ?Sized
```

<a id="impl-86d7da2bfd1140cc1675dfe6a975e6a2762338ab32731152da0723858ef3aa81"></a>

## Implementation of CloneToUninit

```rust
impl<T> CloneToUninit for T where T: Clone
```

<a id="impl-c22bdd3b1b677b66eb32d1c182cc1410c7f0c46491dd74e6a659647c238d19ec"></a>

## Implementation of From

```rust
impl<T> From<T> for T
```

<a id="impl-5adf6ca1830f30fbbac655ab8ff394d254954df7ededc7cc833c72fdc87d6f00"></a>

## Implementation of Imply

```rust
impl<T, U> Imply<T> for U where T: ?Sized, U: ?Sized
```

<a id="impl-85eec431edd188129f88290bbcb748e4d2fdc97f7efef3c162b8c252286ffec0"></a>

## Implementation of Into

```rust
impl<T, U> Into<U> for T where U: From<T>
```

<a id="impl-c40268dd59dd3329202d3c0544c62372e98ff3baa8ec442ec00752e024ec1d06"></a>

## Implementation of IntoEither

```rust
impl<T> IntoEither for T
```

<a id="impl-5655b1ef858b34a584cb80104f040c8a4063ced0d281311a0833ed12aefde86e"></a>

## Implementation of Pointable

```rust
impl<T> Pointable for T
```

<a id="impl-8cc2aa01198fc9fa44f08b889f62988d70d2a7f4f0f11f4666d4c08bdaddb22a"></a>

## Implementation of Read

```rust
impl<T> Read<Exclusive, BecauseExclusive> for T where T: ?Sized
```

<a id="impl-5ea09131039c62dd92b119d480a35c7e2b33d2b81dccf0b849f6b1f19f4bda24"></a>

## Implementation of Same

```rust
impl<T> Same for T
```

<a id="impl-7ee6ff38d6674f5edfe4734359062c2a67a572cff5899a89704764822b931c7f"></a>

## Implementation of SupersetOf

```rust
impl<SS, SP> SupersetOf<SS> for SP where SS: SubsetOf<SP>
```

<a id="impl-a8ef6e94191301c3685488478f4905086c47137bac2d606ea4d09631d5472b06"></a>

## Implementation of ToOwned

```rust
impl<T> ToOwned for T where T: Clone
```

<a id="impl-83960135d00d98080c95a08867729696e36811280c2dd9cf34c1b4fe21c81e18"></a>

## Implementation of TryFrom

```rust
impl<T, U> TryFrom<U> for T where U: Into<T>
```

<a id="impl-1cc495bcaa5112ffb304e7f0de674feca391fd97f47bec86033a9225b72ac05c"></a>

## Implementation of TryInto

```rust
impl<T, U> TryInto<U> for T where U: TryFrom<T>
```
