message: more derives
diff: // //! ```
  use crate::prelude::*;
  +use serde::{Deserialize, Serialize};
  /// Fletcher and Reeves (FR) method
  /// TODO: Reference
  -#[derive(Default)]
  +#[derive(
  + Default, Serialize, Deserialize, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug,
  +)]
  pub struct FletcherReeves {}
  impl FletcherReeves {
  @@ -45,7 +48,9 @@ where
  /// Polak and Ribiere (PR) method
  /// TODO: Reference
  -#[derive(Default)]
  +#[derive(
  + Default, Serialize, Deserialize, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug,
  +)]
  pub struct PolakRibiere {}
  impl PolakRibiere {
  @@ -67,7 +72,9 @@ where
  /// Polak and Ribiere Plus (PR+) method
  /// TODO: Reference
  -#[derive(Default)]
  +#[derive(
  + Default, Serialize, Deserialize, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug,
  +)]
  pub struct PolakRibierePlus {}
  impl PolakRibierePlus {
  @@ -90,7 +97,9 @@ where
  /// Hestenes and Stiefel (HS) method
  /// TODO: Reference
  -#[derive(Default)]
  +#[derive(
  + Default, Serialize, Deserialize, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug,
  +)]
  pub struct HestenesStiefel {}
  impl HestenesStiefel {
  