ruci 2.1.0

A UCI (Universal Chess Interface) crate.
Documentation
macro_rules! message_from_impl {
    (engine $message:ident $(<$l:lifetime>)?) => {
        impl<'a> From<$message $(<$l>)?> for crate::Message<'a> {
            fn from(value: $message $(<$l>)?) -> Self {
                Self::Engine(crate::engine::Message::$message(value))
            }
        }

        impl<'a> From<$message $(<$l>)?> for crate::engine::Message<'a> {
            fn from(value: $message $(<$l>)?) -> Self {
                crate::engine::Message::$message(value)
            }
        }
    };

    (gui $message:ident $(<$l:lifetime>)?) => {
        impl<'a> From<$message $(<$l>)?> for crate::Message<'a> {
            fn from(value: $message $(<$l>)?) -> Self {
                Self::Gui(crate::gui::Message::$message(value))
            }
        }

        impl<'a> From<$message $(<$l>)?> for crate::gui::Message<'a> {
            fn from(value: $message $(<$l>)?) -> Self {
                crate::gui::Message::$message(value)
            }
        }
    };
}

pub(crate) use message_from_impl;