class Dependabot::Uv::Version

def <=>(other)

def <=>(other)
  other = Dependabot::Uv::Version.new(other.to_s) unless other.is_a?(Dependabot::Uv::Version)
  other = T.cast(other, Dependabot::Uv::Version)
  epoch_comparison = epoch <=> other.epoch
  return epoch_comparison unless epoch_comparison.zero?
  release_comparison = release_version_comparison(other)
  return release_comparison unless release_comparison.zero?
  pre_comparison = compare_keys(pre_cmp_key, other.pre_cmp_key)
  return pre_comparison unless pre_comparison.zero?
  post_comparison = compare_keys(post_cmp_key, other.post_cmp_key)
  return post_comparison unless post_comparison.zero?
  dev_comparison = compare_keys(dev_cmp_key, other.dev_cmp_key)
  return dev_comparison unless dev_comparison.zero?
  compare_keys(local_cmp_key, other.local_cmp_key)
end