const DEFAULT_SCORE_THRESHOLD: f64 = 0.95;
const DEFAULT_PRECISION_SCALAR: u8 = 2;
const DEFAULT_MAX_PRECISION_NM: f64 = 20.0;

#[derive(Debug, Clone, PartialEq)]
pub struct Settings
{
	global_score_threshold: f64,
	precision_scalar: u8, // less than x times max precision
	default_max_precision_nm: f64
}

impl Settings
{
	pub fn new(global_score_threshold: f64, precision_scalar: u8, max_precision_nm: f64) -> Self
	{
		Self
		{
			global_score_threshold, 
			precision_scalar,
			default_max_precision_nm: max_precision_nm
		}
	}

	pub fn threshold(&self) -> f64
	{
		self.global_score_threshold
	}

	pub fn precision_scalar(&self) -> u8
	{
		self.precision_scalar
	}

	pub fn default_max_precision_nm(&self) -> f64
	{
		self.default_max_precision_nm
	}
}

impl Default for Settings
{
	fn default() -> Self
	{
		Self::new(DEFAULT_SCORE_THRESHOLD, DEFAULT_PRECISION_SCALAR, DEFAULT_MAX_PRECISION_NM)
	}
}