#[non_exhaustive]pub enum PackagePublish<'g> {
Unrestricted,
Registries(&'g [String]),
}
Expand description
Locations that a package can be published to.
Returned by PackageMetadata::publish
.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Unrestricted
Publication of this package is unrestricted.
Registries(&'g [String])
This package can only be published to the listed package registry.
If the list is empty, this package cannot be published to any registries.
Implementations§
source§impl<'g> PackagePublish<'g>
impl<'g> PackagePublish<'g>
sourcepub const CRATES_IO: &'static str = "crates-io"
pub const CRATES_IO: &'static str = "crates-io"
The string "crates-io"
, indicating that a package can be published to
crates.io.
sourcepub fn is_unrestricted(&self) -> bool
pub fn is_unrestricted(&self) -> bool
Returns true if this package can be published to any package registry.
§Examples
use guppy::graph::PackagePublish;
assert!(PackagePublish::Unrestricted.is_unrestricted());
assert!(!PackagePublish::Registries(&[PackagePublish::CRATES_IO.to_owned()]).is_unrestricted());
assert!(!PackagePublish::Registries(&[]).is_unrestricted());
sourcepub fn can_publish_to(&self, registry: impl AsRef<str>) -> bool
pub fn can_publish_to(&self, registry: impl AsRef<str>) -> bool
Returns true if a package can be published to the given package registry.
§Examples
use guppy::graph::PackagePublish;
// Unrestricted means this package can be published to any registry.
assert!(PackagePublish::Unrestricted.can_publish_to(PackagePublish::CRATES_IO));
assert!(PackagePublish::Unrestricted.can_publish_to("my-registry"));
// Publish to specific registries but not others.
let crates_io = &[PackagePublish::CRATES_IO.to_owned()];
let crates_io_publish = PackagePublish::Registries(crates_io);
assert!(crates_io_publish.can_publish_to(PackagePublish::CRATES_IO));
assert!(!crates_io_publish.can_publish_to("my-registry"));
// Cannot publish to any registries.
assert!(!PackagePublish::Registries(&[]).can_publish_to(PackagePublish::CRATES_IO));
sourcepub fn can_publish_to_crates_io(&self) -> bool
pub fn can_publish_to_crates_io(&self) -> bool
Returns true if a package can be published to crates.io.
sourcepub fn is_never(&self) -> bool
pub fn is_never(&self) -> bool
Returns true if a package cannot be published to any registries.
§Examples
use guppy::graph::PackagePublish;
assert!(!PackagePublish::Unrestricted.is_never());
assert!(!PackagePublish::Registries(&[PackagePublish::CRATES_IO.to_owned()]).is_never());
assert!(PackagePublish::Registries(&[]).is_never());
Trait Implementations§
source§impl<'g> Clone for PackagePublish<'g>
impl<'g> Clone for PackagePublish<'g>
source§fn clone(&self) -> PackagePublish<'g>
fn clone(&self) -> PackagePublish<'g>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<'g> Debug for PackagePublish<'g>
impl<'g> Debug for PackagePublish<'g>
source§impl<'g> Hash for PackagePublish<'g>
impl<'g> Hash for PackagePublish<'g>
source§impl<'g> PartialEq for PackagePublish<'g>
impl<'g> PartialEq for PackagePublish<'g>
impl<'g> Copy for PackagePublish<'g>
impl<'g> Eq for PackagePublish<'g>
impl<'g> StructuralPartialEq for PackagePublish<'g>
Auto Trait Implementations§
impl<'g> Freeze for PackagePublish<'g>
impl<'g> RefUnwindSafe for PackagePublish<'g>
impl<'g> Send for PackagePublish<'g>
impl<'g> Sync for PackagePublish<'g>
impl<'g> Unpin for PackagePublish<'g>
impl<'g> UnwindSafe for PackagePublish<'g>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more