# Copyright 2022 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2

EAPI="7"

CROS_RUST_REMOVE_DEV_DEPS=1

inherit cros-rust

DESCRIPTION='Big integer implementation for Rust'
HOMEPAGE='https://github.com/rust-num/num-bigint'
SRC_URI="https://crates.io/api/v1/crates/${PN}/${PV}/download -> ${P}.crate"

LICENSE="|| ( MIT Apache-2.0 )"
SLOT="${PV}/${PR}"
KEYWORDS="*"

DEPEND="
	>=dev-rust/num-integer-0.1.42 <dev-rust/num-integer-0.2.0_alpha:=
	>=dev-rust/num-traits-0.2.11 <dev-rust/num-traits-0.3.0_alpha:=
	=dev-rust/quickcheck-0.9*:=
	=dev-rust/quickcheck_macros-0.8*:=
	=dev-rust/rand-0.6*:=
	=dev-rust/serde-1*:=
	=dev-rust/autocfg-1*:=
"
RDEPEND="${DEPEND}"

# This file was automatically generated by cargo2ebuild.py
