///|
/// Computes a score with the selected validated similarity metric.
pub fn string_similarity(
  left : String,
  right : String,
  metric : SimilarityMetric,
) -> Result[Double, SimilarityError] {
  match metric {
    Levenshtein => Ok(levenshtein_similarity(left, right))
    Jaro => Ok(jaro_similarity(left, right))
    JaroWinkler(scaling) => jaro_winkler_similarity(left, right, scaling)
    Dice(size) => dice_similarity(left, right, size)
  }
}