Skip to main content

PortfolioView

Struct PortfolioView 

Source
pub struct PortfolioView {
Show 17 fields pub name: String, pub as_of: String, pub total_value: f64, pub total_cost: Option<f64>, pub unrealized: Option<f64>, pub unrealized_pct: Option<f64>, pub without_cost_basis: u32, pub cash: f64, pub holdings: Vec<HoldingView>, pub unpriced: Vec<String>, pub value_history: Vec<ValuePoint>, pub change: Option<ChangeView>, pub warnings: Vec<String>, pub import: Option<ImportView>, pub source: Option<String>, pub paper: bool, pub refreshed_at: Option<String>,
}
Expand description

Every shape at the root as well, because a window names a view on nearly every line and arvo_api::research::StudyView would be noise. The names do not collide: proto has no overloading and neither does this. Every shape at the root as well, because a window names a view on nearly every line and arvo_api::research::StudyView would be noise. The names do not collide: proto has no overloading and neither does this. Every shape at the root as well, because a window names a view on nearly every line and arvo_api::research::StudyView would be noise. The names do not collide: proto has no overloading and neither does this.

Fields§

§name: String§as_of: String§total_value: f64§total_cost: Option<f64>§unrealized: Option<f64>§unrealized_pct: Option<f64>§without_cost_basis: u32

How many holdings reported no cost basis. Normal for a 401(k).

§cash: f64§holdings: Vec<HoldingView>§unpriced: Vec<String>§value_history: Vec<ValuePoint>

Value on every day this portfolio has been looked at. A holdings file says what you hold now; almost everything interesting is a change, and a single export cannot express one.

§change: Option<ChangeView>

None until a portfolio has been valued on two different days.

§warnings: Vec<String>

Holdings over their band or over the default ceiling, as sentences saying what to trim (#27). See arvo_portfolio::bands.

§import: Option<ImportView>

How the file was read. Shown, not hidden: an importer that guessed a column wrong produces a portfolio that looks entirely plausible, and this is the only thing that would reveal it.

§source: Option<String>

The vendor whose sync wrote this file (robinhood), or None for a file the person exported themselves. Says whether a refresh is a button or a matter of replacing the file.

§paper: bool

Simulated money — a broker’s paper account. Never added to a real total: one blended number would report a paper gain as wealth.

§refreshed_at: Option<String>

When the file was last written, as the file system says: the last sync for a synced account, the last export for an exported one.

Implementations§

Source§

impl PortfolioView

Source

pub fn total_cost(&self) -> f64

Returns the value of total_cost, or the default value if total_cost is unset.

Source

pub fn unrealized(&self) -> f64

Returns the value of unrealized, or the default value if unrealized is unset.

Source

pub fn unrealized_pct(&self) -> f64

Returns the value of unrealized_pct, or the default value if unrealized_pct is unset.

Source

pub fn source(&self) -> &str

Returns the value of source, or the default value if source is unset.

Source

pub fn refreshed_at(&self) -> &str

Returns the value of refreshed_at, or the default value if refreshed_at is unset.

Source§

impl PortfolioView

Source

pub fn import(&self) -> &ImportView

The sender always fills this.

§Panics

Only if it did not, which would mean the two sides disagree about the contract.

Trait Implementations§

Source§

impl Clone for PortfolioView

Source§

fn clone(&self) -> Self

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 PortfolioView

Source§

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

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

impl Default for PortfolioView

Source§

fn default() -> Self

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

impl<'de> Deserialize<'de> for PortfolioView

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Message for PortfolioView

Source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
Source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message to a buffer. Read more
Source§

fn encode_to_vec(&self) -> Vec<u8> ⓘ
where Self: Sized,

Encodes the message to a newly allocated buffer.
Source§

fn encode_length_delimited( &self, buf: &mut impl BufMut, ) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
Source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘ
where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
Source§

fn decode(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes an instance of the message from a buffer. Read more
Source§

fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes a length-delimited instance of the message from the buffer.
Source§

fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
Source§

fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
Source§

impl PartialEq for PortfolioView

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl Serialize for PortfolioView

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
Source§

impl StructuralPartialEq for PortfolioView

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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 = !

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.