pub fn is_compatible(first: &str, second: &str) -> crate::Result<bool> {
  let first = Version::parse(first)?;
  let second = Version::parse(second)?;
  Ok(if second.major == 0 && first.major == 0 {
    first.minor == second.minor && second.patch > first.patch
  } else if second.major > 0 {
    first.major == second.major
      && ((second.minor > first.minor)
        || (first.minor == second.minor && second.patch > first.patch))
  } else {
    false
  })
}
/// Check if the "second" semver is compatible with the "first"
Check if the "second" semver is compatible with the "first"
Check if the " second " semver is compatible with the " first "
pub fn is_compatible(first: &str, second: &str) -> crate::Result<bool> {
  let first = Version::parse(first)?;
  let second = Version::parse(second)?;
  Ok(if second.major == 0 && first.major == 0 {
    first.minor == second.minor && second.patch > first.patch
  } else if second.major > 0 {
    first.major == second.major
      && ((second.minor > first.minor)
        || (first.minor == second.minor && second.patch > first.patch))
  } else {
    false
  })
}
pub fn is_compatible ( first : & str , second : & str ) -> crate :: Result < bool > { let first = Version :: parse ( first ) ? ; let second = Version :: parse ( second ) ? ; Ok ( if second . major == 0 && first . major == 0 { first . minor == second . minor && second . patch > first . patch } else if second . major > 0 { first . major == second . major && ( ( second . minor > first . minor ) || ( first . minor == second . minor && second . patch > first . patch ) ) } else { false } ) }
Check if the "second" semver is compatible with the "first"
Check if the " second " semver is compatible with the " first "
first
&str
second
&str
first
&str
second
&str