mirl 9.2.0

Miners Rust Lib - A massive collection of ever growing and changing functions, structs, and enums. Check the description for compatibility and toggleable features! (Most of the lib is controlled by flags/features so the lib can continue to be lightweight despite its size)
use crate::prelude::{FromPatch, IntoPatch};

impl<T: IntoPatch<O>, O> FromPatch<(T,)> for (O,) {
    fn from_value(value: (T,)) -> Self {
        (value.0.into_value(),)
    }
}

impl<T1: IntoPatch<O1>, T2: IntoPatch<O2>, O1, O2> FromPatch<(T1, T2)>
    for (O1, O2)
{
    fn from_value(value: (T1, T2)) -> Self {
        (value.0.into_value(), value.1.into_value())
    }
}

impl<T1: IntoPatch<O1>, T2: IntoPatch<O2>, T3: IntoPatch<O3>, O1, O2, O3>
    FromPatch<(T1, T2, T3)> for (O1, O2, O3)
{
    fn from_value(value: (T1, T2, T3)) -> Self {
        (
            value.0.into_value(),
            value.1.into_value(),
            value.2.into_value(),
        )
    }
}

impl<
        T1: IntoPatch<O1>,
        T2: IntoPatch<O2>,
        T3: IntoPatch<O3>,
        T4: IntoPatch<O4>,
        O1,
        O2,
        O3,
        O4,
    > FromPatch<(T1, T2, T3, T4)> for (O1, O2, O3, O4)
{
    fn from_value(value: (T1, T2, T3, T4)) -> Self {
        (
            value.0.into_value(),
            value.1.into_value(),
            value.2.into_value(),
            value.3.into_value(),
        )
    }
}

impl<
        T1: IntoPatch<O1>,
        T2: IntoPatch<O2>,
        T3: IntoPatch<O3>,
        T4: IntoPatch<O4>,
        T5: IntoPatch<O5>,
        O1,
        O2,
        O3,
        O4,
        O5,
    > FromPatch<(T1, T2, T3, T4, T5)> for (O1, O2, O3, O4, O5)
{
    fn from_value(value: (T1, T2, T3, T4, T5)) -> Self {
        (
            value.0.into_value(),
            value.1.into_value(),
            value.2.into_value(),
            value.3.into_value(),
            value.4.into_value(),
        )
    }
}

impl<
        T1: IntoPatch<O1>,
        T2: IntoPatch<O2>,
        T3: IntoPatch<O3>,
        T4: IntoPatch<O4>,
        T5: IntoPatch<O5>,
        T6: IntoPatch<O6>,
        O1,
        O2,
        O3,
        O4,
        O5,
        O6,
    > FromPatch<(T1, T2, T3, T4, T5, T6)> for (O1, O2, O3, O4, O5, O6)
{
    fn from_value(value: (T1, T2, T3, T4, T5, T6)) -> Self {
        (
            value.0.into_value(),
            value.1.into_value(),
            value.2.into_value(),
            value.3.into_value(),
            value.4.into_value(),
            value.5.into_value(),
        )
    }
}

impl<
        T1: IntoPatch<O1>,
        T2: IntoPatch<O2>,
        T3: IntoPatch<O3>,
        T4: IntoPatch<O4>,
        T5: IntoPatch<O5>,
        T6: IntoPatch<O6>,
        T7: IntoPatch<O7>,
        O1,
        O2,
        O3,
        O4,
        O5,
        O6,
        O7,
    > FromPatch<(T1, T2, T3, T4, T5, T6, T7)> for (O1, O2, O3, O4, O5, O6, O7)
{
    fn from_value(value: (T1, T2, T3, T4, T5, T6, T7)) -> Self {
        (
            value.0.into_value(),
            value.1.into_value(),
            value.2.into_value(),
            value.3.into_value(),
            value.4.into_value(),
            value.5.into_value(),
            value.6.into_value(),
        )
    }
}

impl<
        T1: IntoPatch<O1>,
        T2: IntoPatch<O2>,
        T3: IntoPatch<O3>,
        T4: IntoPatch<O4>,
        T5: IntoPatch<O5>,
        T6: IntoPatch<O6>,
        T7: IntoPatch<O7>,
        T8: IntoPatch<O8>,
        O1,
        O2,
        O3,
        O4,
        O5,
        O6,
        O7,
        O8,
    > FromPatch<(T1, T2, T3, T4, T5, T6, T7, T8)>
    for (O1, O2, O3, O4, O5, O6, O7, O8)
{
    fn from_value(value: (T1, T2, T3, T4, T5, T6, T7, T8)) -> Self {
        (
            value.0.into_value(),
            value.1.into_value(),
            value.2.into_value(),
            value.3.into_value(),
            value.4.into_value(),
            value.5.into_value(),
            value.6.into_value(),
            value.7.into_value(),
        )
    }
}

impl<
        T1: IntoPatch<O1>,
        T2: IntoPatch<O2>,
        T3: IntoPatch<O3>,
        T4: IntoPatch<O4>,
        T5: IntoPatch<O5>,
        T6: IntoPatch<O6>,
        T7: IntoPatch<O7>,
        T8: IntoPatch<O8>,
        T9: IntoPatch<O9>,
        O1,
        O2,
        O3,
        O4,
        O5,
        O6,
        O7,
        O8,
        O9,
    > FromPatch<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>
    for (O1, O2, O3, O4, O5, O6, O7, O8, O9)
{
    fn from_value(value: (T1, T2, T3, T4, T5, T6, T7, T8, T9)) -> Self {
        (
            value.0.into_value(),
            value.1.into_value(),
            value.2.into_value(),
            value.3.into_value(),
            value.4.into_value(),
            value.5.into_value(),
            value.6.into_value(),
            value.7.into_value(),
            value.8.into_value(),
        )
    }
}

impl<
        T1: IntoPatch<O1>,
        T2: IntoPatch<O2>,
        T3: IntoPatch<O3>,
        T4: IntoPatch<O4>,
        T5: IntoPatch<O5>,
        T6: IntoPatch<O6>,
        T7: IntoPatch<O7>,
        T8: IntoPatch<O8>,
        T9: IntoPatch<O9>,
        T10: IntoPatch<O10>,
        O1,
        O2,
        O3,
        O4,
        O5,
        O6,
        O7,
        O8,
        O9,
        O10,
    > FromPatch<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
    for (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10)
{
    fn from_value(value: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)) -> Self {
        (
            value.0.into_value(),
            value.1.into_value(),
            value.2.into_value(),
            value.3.into_value(),
            value.4.into_value(),
            value.5.into_value(),
            value.6.into_value(),
            value.7.into_value(),
            value.8.into_value(),
            value.9.into_value(),
        )
    }
}

impl<
        T1: IntoPatch<O1>,
        T2: IntoPatch<O2>,
        T3: IntoPatch<O3>,
        T4: IntoPatch<O4>,
        T5: IntoPatch<O5>,
        T6: IntoPatch<O6>,
        T7: IntoPatch<O7>,
        T8: IntoPatch<O8>,
        T9: IntoPatch<O9>,
        T10: IntoPatch<O10>,
        T11: IntoPatch<O11>,
        O1,
        O2,
        O3,
        O4,
        O5,
        O6,
        O7,
        O8,
        O9,
        O10,
        O11,
    > FromPatch<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>
    for (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11)
{
    fn from_value(
        value: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11),
    ) -> Self {
        (
            value.0.into_value(),
            value.1.into_value(),
            value.2.into_value(),
            value.3.into_value(),
            value.4.into_value(),
            value.5.into_value(),
            value.6.into_value(),
            value.7.into_value(),
            value.8.into_value(),
            value.9.into_value(),
            value.10.into_value(),
        )
    }
}

impl<
        T1: IntoPatch<O1>,
        T2: IntoPatch<O2>,
        T3: IntoPatch<O3>,
        T4: IntoPatch<O4>,
        T5: IntoPatch<O5>,
        T6: IntoPatch<O6>,
        T7: IntoPatch<O7>,
        T8: IntoPatch<O8>,
        T9: IntoPatch<O9>,
        T10: IntoPatch<O10>,
        T11: IntoPatch<O11>,
        T12: IntoPatch<O12>,
        O1,
        O2,
        O3,
        O4,
        O5,
        O6,
        O7,
        O8,
        O9,
        O10,
        O11,
        O12,
    > FromPatch<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>
    for (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12)
{
    fn from_value(
        value: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12),
    ) -> Self {
        (
            value.0.into_value(),
            value.1.into_value(),
            value.2.into_value(),
            value.3.into_value(),
            value.4.into_value(),
            value.5.into_value(),
            value.6.into_value(),
            value.7.into_value(),
            value.8.into_value(),
            value.9.into_value(),
            value.10.into_value(),
            value.11.into_value(),
        )
    }
}