Skip to main content

DeviceProfile

Struct DeviceProfile 

Source
pub struct DeviceProfile {
    pub kind: Symbol,
    pub tier: DeviceTier,
    pub display: Vec<Symbol>,
    pub input: Vec<Symbol>,
    pub output: Vec<Symbol>,
    pub links: Vec<Symbol>,
    pub streams: Vec<Symbol>,
    pub rate: RateClass,
    pub policy: Expr,
}
Expand description

A typed device envelope derived from SurfaceCaps.

This is capability data, not a concrete device enum. Instances advertise maps; this profile reads them into stable lanes so routing and degradation decisions share one interpretation.

Fields§

§kind: Symbol

Device family token, for example watch, glasses, or desktop.

§tier: DeviceTier

Tier computed by derive_tier.

§display: Vec<Symbol>

Display capability tokens such as flat, stereo, round, or hud.

§input: Vec<Symbol>

Input capability tokens such as touch, tap, voice, or crown.

§output: Vec<Symbol>

Output capability tokens such as screen, haptic, speaker, or hud.

§links: Vec<Symbol>

Link tokens such as usb, phone-relay, or lan-ws.

§streams: Vec<Symbol>

Stream tokens such as pose, heart-rate, motion, or battery.

§rate: RateClass

Declared timing envelope.

§policy: Expr

Consent, retention, and redaction hints.

Implementations§

Source§

impl DeviceProfile

Source

pub fn new(parts: DeviceProfileParts) -> Self

Builds a profile and computes the tier from the advertised fields.

Source

pub fn from_surface_caps(caps: &SurfaceCaps) -> Self

Derives a device profile from open SurfaceCaps metadata.

Source

pub fn to_expr(&self) -> Expr

Encodes this profile as a device/profile tagged map.

Source

pub fn from_expr(expr: &Expr) -> Result<Self, DeviceProfileError>

Parses a device/profile tagged map.

Source§

impl DeviceProfile

Source

pub fn to_surface_caps(&self, client_id: impl Into<String>) -> SurfaceCaps

Converts this profile back into open surface capabilities for client_id.

This is the bridge used by device peers: the device keeps the typed profile for routing and tier decisions, while the synchronized surface hub receives ordinary SurfaceCaps and continues to project scenes by open capability metadata.

Trait Implementations§

Source§

impl Clone for DeviceProfile

Source§

fn clone(&self) -> DeviceProfile

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 DeviceProfile

Source§

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

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

impl PartialEq for DeviceProfile

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for DeviceProfile

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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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.