apple-quant-algorithmic 0.3.0

Apple Quant's algorithmic library.
use std::fmt::Debug;

use apple_quant_core::log::error;

pub trait VolumeConstruct<
	T,
	E: Debug,
> {
	fn new_checked(
		t: impl Into<T>,
	) -> Result<Self, E>
	where
		Self: Sized;

	fn new_unchecked(
		t: impl Into<T>,
	) -> Self;

	fn new_unchecked_release(
		t: impl Into<T>,
	) -> Self
	where
		Self: Sized,
	{
		#[cfg(debug_assertions)]
		match Self::new_checked(t) {
			Ok(
				volume,
			) => volume,
			Err(e) => {
				error!("{e:?}");
				panic!();
			},
		}

		#[cfg(not(debug_assertions))]
		Self::new_unchecked(t)
	}
}