Skip to main content

DbfCode

Enum DbfCode 

Source
#[repr(i16)]
pub enum DbfCode {
Show 18 variants String = 0, Char = 1, UChar = 2, Short = 3, UShort = 4, Long = 5, ULong = 6, Int64 = 7, UInt64 = 8, Float = 9, Double = 10, Enum = 11, Menu = 12, Device = 13, Inlink = 14, Outlink = 15, Fwdlink = 16, NoAccess = 17,
}
Expand description

C’s dbStatic dbfType code — the DBF_* token a .dbd declares and the number dbStaticLib stores, exports and prints (dbFldTypes.h:24-43 @R7.0.10).

A SECOND fact about a field, not a renumbering of DbFieldType: that enum’s discriminants are the CA wire codes and are load-bearing on the protocol, whereas these are dbStatic’s own indices, and the two orders disagree from the second entry on (DBF_CHAR is 1 here and DBR_SHORT is 1 there). Anything that prints C’s %d type number — dba’s Field Type row, dbStatic’s dbDumpField — needs this one.

It also has six codes DbFieldType cannot express at all: a served type is one of twelve scalars, while a declaration can additionally be MENU, DEVICE, the three link kinds, or NOACCESS. That is why super::super::server::record::FieldDesc::declared_dbf carries this type rather than deriving it — the collapse is one-way.

Variants§

§

String = 0

DBF_STRING (0).

§

Char = 1

DBF_CHAR (1) — epicsInt8.

§

UChar = 2

DBF_UCHAR (2) — epicsUInt8.

§

Short = 3

DBF_SHORT (3).

§

UShort = 4

DBF_USHORT (4).

§

Long = 5

DBF_LONG (5).

§

ULong = 6

DBF_ULONG (6).

§

Int64 = 7

DBF_INT64 (7).

§

UInt64 = 8

DBF_UINT64 (8).

§

Float = 9

DBF_FLOAT (9).

§

Double = 10

DBF_DOUBLE (10).

§

Enum = 11

DBF_ENUM (11).

§

Menu = 12

DBF_MENU (12) — served as an enum, declared as a menu.

§

Device = 13

DBF_DEVICE (13) — the DTYP field, served as an enum.

DBF_INLINK (14).

DBF_OUTLINK (15).

DBF_FWDLINK (16).

§

NoAccess = 17

DBF_NOACCESS (17) — a C-internal with no dbStatic representation.

Implementations§

Source§

impl DbfCode

Source

pub const fn name(self) -> &'static str

The token without its DBF_ prefix — C’s dbf[] (dbTest.c:76-81), which is pamapdbfType’s strvalue (dbFldTypes.h:51-70) with that prefix stripped. dba prints DBF_%s around it and dbStatic prints the full name, so one table serves both.

Source

pub const fn dbr_code(self) -> DbfCode

C’s mapDBFToDBR (dbAccess.c:76-95) — the DBR code dbEntryToAddr stores in paddr->dbr_field_type (:639), which is what a client asking for this field’s native type is answered with.

DBR_* here is dbFldTypes.h:75-90’s numbering, where every DBR_x is #defined to its DBF_x, so the map is a projection of this enum onto itself and needs no second type: it collapses MENU and DEVICE onto ENUM and the three link types onto STRING, and is the identity on the other thirteen.

NOT the CA wire type. That numbering is the older, narrower db_access.h one carried by DbFieldType’s own discriminants and reached through DbFieldType::ca_wire_type; the two disagree on every code above DBR_SHORT.

Trait Implementations§

Source§

impl Clone for DbfCode

Source§

fn clone(&self) -> DbfCode

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for DbfCode

Source§

impl Debug for DbfCode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for DbfCode

Source§

impl Hash for DbfCode

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for DbfCode

Source§

fn cmp(&self, other: &DbfCode) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

fn clamp_to<R>(self, range: R) -> Self
where Self: Sized, R: ClampBounds<Self>,

🔬This is a nightly-only experimental API. (clamp_to)
Restrict a value to a certain range. Read more
Source§

impl PartialEq for DbfCode

Source§

fn eq(&self, other: &DbfCode) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl PartialOrd for DbfCode

Source§

fn partial_cmp(&self, other: &DbfCode) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl StructuralPartialEq for DbfCode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more