Skip to main content

StringyFieldKind

Enum StringyFieldKind 

Source
pub enum StringyFieldKind {
    Plain,
    Optional,
    Vec,
}
Expand description

Swift first-class struct classification + chain-resolution metadata.

alef-backend-swift emits two flavors of binding types:

  • First-class Codable structspublic struct Foo: Codable { public let id: String }. Fields are Swift properties; access with .id (no parens).
  • Opaque typealiasespublic typealias Foo = RustBridge.Foo where the RustBridge class exposes swift-bridge methods. Fields are methods; access with .id() (parens).

The renderer needs per-segment dispatch because a path can traverse both: e.g. BatchListResponse (first-class Codable, with data: [BatchObject]) → indexed [0]BatchObject (opaque typealias). At the BatchObject cursor the renderer must switch to method-call access for .id, .status, etc.

  • first_class_types — set of TypeDef names whose binding is a first-class Codable struct. Membership = “use property access for fields on this type”.
  • field_types[type_name][field_name] — the IR-resolved Named type that field_name traverses into.
  • vec_field_names — flat set of field names whose IR type is Vec<T> on any owner. Used by swift_count_target to keep .count straight on RustVec-typed method-call accessors (don’t inject .toString()).
  • root_type — the IR type name backing the result variable.

Kind of a “stringy” field on an opaque DTO element type — used by the swift e2e contains assertion to aggregate every readable text accessor on a Vec<T> element instead of relying on a single primary accessor (which often guesses wrong: e.g. ImportInfo.source is the module path but ImportInfo.items carries the imported names).

Variants§

§

Plain

field_name() -> RustString (or String). Convert via .toString().

§

Optional

field_name() -> Optional<RustString>. Convert via ?.toString() ?? "".

§

Vec

field_name() -> RustVec<RustString>. Iterate elements (RustStringRef → .asStr().toString() on each).

Trait Implementations§

Source§

impl Clone for StringyFieldKind

Source§

fn clone(&self) -> StringyFieldKind

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 Debug for StringyFieldKind

Source§

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

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

impl PartialEq for StringyFieldKind

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for StringyFieldKind

Source§

impl Eq for StringyFieldKind

Source§

impl StructuralPartialEq for StringyFieldKind

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> AsOut<T> for T
where T: Copy,

Source§

fn as_out(&mut self) -> Out<'_, T>

Returns an out reference to self.
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> 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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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