#[doc = "Register `USBSTA` reader"]
pub struct R(crate::R<USBSTA_SPEC>);
impl core::ops::Deref for R {
type Target = crate::R<USBSTA_SPEC>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl core::convert::From<crate::R<USBSTA_SPEC>> for R {
fn from(reader: crate::R<USBSTA_SPEC>) -> Self {
R(reader)
}
}
#[doc = "Field `VBUS` reader - <TBD>"]
pub struct VBUS_R(crate::FieldReader<bool, bool>);
impl VBUS_R {
pub(crate) fn new(bits: bool) -> Self {
VBUS_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for VBUS_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
#[doc = "Field `SPEED` reader - <TBD>"]
pub struct SPEED_R(crate::FieldReader<bool, bool>);
impl SPEED_R {
pub(crate) fn new(bits: bool) -> Self {
SPEED_R(crate::FieldReader::new(bits))
}
}
impl core::ops::Deref for SPEED_R {
type Target = crate::FieldReader<bool, bool>;
#[inline(always)]
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl R {
#[doc = "Bit 0 - <TBD>"]
#[inline(always)]
pub fn vbus(&self) -> VBUS_R {
VBUS_R::new((self.bits & 0x01) != 0)
}
#[doc = "Bit 3 - <TBD>"]
#[inline(always)]
pub fn speed(&self) -> SPEED_R {
SPEED_R::new(((self.bits >> 3) & 0x01) != 0)
}
}
#[doc = "<TBD>\n\nThis register you can [`read`](crate::generic::Reg::read). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [usbsta](index.html) module"]
pub struct USBSTA_SPEC;
impl crate::RegisterSpec for USBSTA_SPEC {
type Ux = u8;
}
#[doc = "`read()` method returns [usbsta::R](R) reader structure"]
impl crate::Readable for USBSTA_SPEC {
type Reader = R;
}
#[doc = "`reset()` method sets USBSTA to value 0"]
impl crate::Resettable for USBSTA_SPEC {
#[inline(always)]
fn reset_value() -> Self::Ux {
0
}
}