omaha_client::protocol::request

Struct App

Source
pub struct App {
    pub id: String,
    pub version: String,
    pub fingerprint: Option<String>,
    pub cohort: Option<Cohort>,
    pub update_check: Option<UpdateCheck>,
    pub events: Vec<Event>,
    pub ping: Option<Ping>,
    pub extra_fields: HashMap<String, String>,
}
Expand description

Information about an individual app that an update check is being performed for.

While unlikely, it’s possible for a single request to have an update check, a ping, and for it to be reporting an event.

See https://github.com/google/omaha/blob/HEAD/doc/ServerProtocolV3.md#app-request

Fields§

§id: String

This is the GUID or product ID that uniquely identifies the product to Omaha.

This is the ‘appid’ attribute of the app object.

§version: String

The version of the product that’s currently installed. This is in ‘A.B.C.D’ format.

This is the version attribute of the app object.

§fingerprint: Option<String>

The fingerprint for the application.

This is the fp attribute of the app object.

§cohort: Option<Cohort>

This is the cohort id, as previously assigned by the Omaha service. This is a machine- readable string, not meant for user display.

This holds the following fields of the app object: cohort cohorthint cohortname

§update_check: Option<UpdateCheck>

If present, this request is an update check.

§events: Vec<Event>

These are events to report to Omaha.

§ping: Option<Ping>

An optional status ping.

§extra_fields: HashMap<String, String>

Extra fields to include (App-specific fields used to extend the protocol).

§NOTE: Can break the omaha protocol if improperly used.

This is listed last in the struct, and should remain so, due to how Serde behaves when flattening fields into the parent. If this map contains a field whose name matches that of another field in the struct (such as id), it will overwrite that field. If that field is optionally serialized (such as update_check), it will still overwrite that field (regardless of the presence or not of the field it’s overwriting).

Trait Implementations§

Source§

impl Clone for App

Source§

fn clone(&self) -> App

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for App

Source§

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

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

impl Default for App

Source§

fn default() -> App

Returns the “default value” for a type. Read more
Source§

impl Serialize for App

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl Freeze for App

§

impl RefUnwindSafe for App

§

impl Send for App

§

impl Sync for App

§

impl Unpin for App

§

impl UnwindSafe for App

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, dst: *mut T)

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

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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

Source§

type Output = T

Should always be Self
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> Unless for T

Source§

fn unless(self, option: Option<T>) -> T

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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