[−][src]Struct brawl_api::model::players::battlelog::BattleLog
Represents a list of a Player's most recent battles. (NOTE: It may take up to 30 minutes for a new battle to appear in the battlelog.)
Use BattleLog::fetch
to fetch the battle logs for a given player tag.
One may also BattleLog::fetch_from
with an existing Player
instance in order to use its
tag.
Fields
tag: String
The tag of the player whose BattleLog (most recent battles) was fetched.
items: Vec<Battle>
The items (battles) of this battle log.
Methods from Deref<Target = Vec<Battle>>
pub fn capacity(&self) -> usize
1.0.0[src]
Returns the number of elements the vector can hold without reallocating.
Examples
let vec: Vec<i32> = Vec::with_capacity(10); assert_eq!(vec.capacity(), 10);
pub fn reserve(&mut self, additional: usize)
1.0.0[src]
Reserves capacity for at least additional
more elements to be inserted
in the given Vec<T>
. The collection may reserve more space to avoid
frequent reallocations. After calling reserve
, capacity will be
greater than or equal to self.len() + additional
. Does nothing if
capacity is already sufficient.
Panics
Panics if the new capacity overflows usize
.
Examples
let mut vec = vec![1]; vec.reserve(10); assert!(vec.capacity() >= 11);
pub fn reserve_exact(&mut self, additional: usize)
1.0.0[src]
Reserves the minimum capacity for exactly additional
more elements to
be inserted in the given Vec<T>
. After calling reserve_exact
,
capacity will be greater than or equal to self.len() + additional
.
Does nothing if the capacity is already sufficient.
Note that the allocator may give the collection more space than it
requests. Therefore, capacity can not be relied upon to be precisely
minimal. Prefer reserve
if future insertions are expected.
Panics
Panics if the new capacity overflows usize
.
Examples
let mut vec = vec![1]; vec.reserve_exact(10); assert!(vec.capacity() >= 11);
pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>
[src]
🔬 This is a nightly-only experimental API. (try_reserve
)
new API
Tries to reserve capacity for at least additional
more elements to be inserted
in the given Vec<T>
. The collection may reserve more space to avoid
frequent reallocations. After calling reserve
, capacity will be
greater than or equal to self.len() + additional
. Does nothing if
capacity is already sufficient.
Errors
If the capacity overflows, or the allocator reports a failure, then an error is returned.
Examples
#![feature(try_reserve)] use std::collections::TryReserveError; fn process_data(data: &[u32]) -> Result<Vec<u32>, TryReserveError> { let mut output = Vec::new(); // Pre-reserve the memory, exiting if we can't output.try_reserve(data.len())?; // Now we know this can't OOM in the middle of our complex work output.extend(data.iter().map(|&val| { val * 2 + 5 // very complicated })); Ok(output) }
pub fn try_reserve_exact(
&mut self,
additional: usize
) -> Result<(), TryReserveError>
[src]
&mut self,
additional: usize
) -> Result<(), TryReserveError>
🔬 This is a nightly-only experimental API. (try_reserve
)
new API
Tries to reserves the minimum capacity for exactly additional
more elements to
be inserted in the given Vec<T>
. After calling reserve_exact
,
capacity will be greater than or equal to self.len() + additional
.
Does nothing if the capacity is already sufficient.
Note that the allocator may give the collection more space than it
requests. Therefore, capacity can not be relied upon to be precisely
minimal. Prefer reserve
if future insertions are expected.
Errors
If the capacity overflows, or the allocator reports a failure, then an error is returned.
Examples
#![feature(try_reserve)] use std::collections::TryReserveError; fn process_data(data: &[u32]) -> Result<Vec<u32>, TryReserveError> { let mut output = Vec::new(); // Pre-reserve the memory, exiting if we can't output.try_reserve(data.len())?; // Now we know this can't OOM in the middle of our complex work output.extend(data.iter().map(|&val| { val * 2 + 5 // very complicated })); Ok(output) }
pub fn shrink_to_fit(&mut self)
1.0.0[src]
Shrinks the capacity of the vector as much as possible.
It will drop down as close as possible to the length but the allocator may still inform the vector that there is space for a few more elements.
Examples
let mut vec = Vec::with_capacity(10); vec.extend([1, 2, 3].iter().cloned()); assert_eq!(vec.capacity(), 10); vec.shrink_to_fit(); assert!(vec.capacity() >= 3);
pub fn shrink_to(&mut self, min_capacity: usize)
[src]
🔬 This is a nightly-only experimental API. (shrink_to
)
new API
Shrinks the capacity of the vector with a lower bound.
The capacity will remain at least as large as both the length and the supplied value.
Panics
Panics if the current capacity is smaller than the supplied minimum capacity.
Examples
#![feature(shrink_to)] let mut vec = Vec::with_capacity(10); vec.extend([1, 2, 3].iter().cloned()); assert_eq!(vec.capacity(), 10); vec.shrink_to(4); assert!(vec.capacity() >= 4); vec.shrink_to(0); assert!(vec.capacity() >= 3);
pub fn truncate(&mut self, len: usize)
1.0.0[src]
Shortens the vector, keeping the first len
elements and dropping
the rest.
If len
is greater than the vector's current length, this has no
effect.
The drain
method can emulate truncate
, but causes the excess
elements to be returned instead of dropped.
Note that this method has no effect on the allocated capacity of the vector.
Examples
Truncating a five element vector to two elements:
let mut vec = vec![1, 2, 3, 4, 5]; vec.truncate(2); assert_eq!(vec, [1, 2]);
No truncation occurs when len
is greater than the vector's current
length:
let mut vec = vec![1, 2, 3]; vec.truncate(8); assert_eq!(vec, [1, 2, 3]);
Truncating when len == 0
is equivalent to calling the clear
method.
let mut vec = vec![1, 2, 3]; vec.truncate(0); assert_eq!(vec, []);
pub fn as_slice(&self) -> &[T]
1.7.0[src]
Extracts a slice containing the entire vector.
Equivalent to &s[..]
.
Examples
use std::io::{self, Write}; let buffer = vec![1, 2, 3, 5, 8]; io::sink().write(buffer.as_slice()).unwrap();
pub fn as_mut_slice(&mut self) -> &mut [T]
1.7.0[src]
Extracts a mutable slice of the entire vector.
Equivalent to &mut s[..]
.
Examples
use std::io::{self, Read}; let mut buffer = vec![0; 3]; io::repeat(0b101).read_exact(buffer.as_mut_slice()).unwrap();
pub fn as_ptr(&self) -> *const T
1.37.0[src]
Returns a raw pointer to the vector's buffer.
The caller must ensure that the vector outlives the pointer this function returns, or else it will end up pointing to garbage. Modifying the vector may cause its buffer to be reallocated, which would also make any pointers to it invalid.
The caller must also ensure that the memory the pointer (non-transitively) points to
is never written to (except inside an UnsafeCell
) using this pointer or any pointer
derived from it. If you need to mutate the contents of the slice, use as_mut_ptr
.
Examples
let x = vec![1, 2, 4]; let x_ptr = x.as_ptr(); unsafe { for i in 0..x.len() { assert_eq!(*x_ptr.add(i), 1 << i); } }
pub fn as_mut_ptr(&mut self) -> *mut T
1.37.0[src]
Returns an unsafe mutable pointer to the vector's buffer.
The caller must ensure that the vector outlives the pointer this function returns, or else it will end up pointing to garbage. Modifying the vector may cause its buffer to be reallocated, which would also make any pointers to it invalid.
Examples
// Allocate vector big enough for 4 elements. let size = 4; let mut x: Vec<i32> = Vec::with_capacity(size); let x_ptr = x.as_mut_ptr(); // Initialize elements via raw pointer writes, then set length. unsafe { for i in 0..size { *x_ptr.add(i) = i as i32; } x.set_len(size); } assert_eq!(&*x, &[0,1,2,3]);
pub unsafe fn set_len(&mut self, new_len: usize)
1.0.0[src]
Forces the length of the vector to new_len
.
This is a low-level operation that maintains none of the normal
invariants of the type. Normally changing the length of a vector
is done using one of the safe operations instead, such as
truncate
, resize
, extend
, or clear
.
Safety
new_len
must be less than or equal tocapacity()
.- The elements at
old_len..new_len
must be initialized.
Examples
This method can be useful for situations in which the vector is serving as a buffer for other code, particularly over FFI:
pub fn get_dictionary(&self) -> Option<Vec<u8>> { // Per the FFI method's docs, "32768 bytes is always enough". let mut dict = Vec::with_capacity(32_768); let mut dict_length = 0; // SAFETY: When `deflateGetDictionary` returns `Z_OK`, it holds that: // 1. `dict_length` elements were initialized. // 2. `dict_length` <= the capacity (32_768) // which makes `set_len` safe to call. unsafe { // Make the FFI call... let r = deflateGetDictionary(self.strm, dict.as_mut_ptr(), &mut dict_length); if r == Z_OK { // ...and update the length to what was initialized. dict.set_len(dict_length); Some(dict) } else { None } } }
While the following example is sound, there is a memory leak since
the inner vectors were not freed prior to the set_len
call:
let mut vec = vec![vec![1, 0, 0], vec![0, 1, 0], vec![0, 0, 1]]; // SAFETY: // 1. `old_len..0` is empty so no elements need to be initialized. // 2. `0 <= capacity` always holds whatever `capacity` is. unsafe { vec.set_len(0); }
Normally, here, one would use clear
instead to correctly drop
the contents and thus not leak memory.
pub fn swap_remove(&mut self, index: usize) -> T
1.0.0[src]
Removes an element from the vector and returns it.
The removed element is replaced by the last element of the vector.
This does not preserve ordering, but is O(1).
Panics
Panics if index
is out of bounds.
Examples
let mut v = vec!["foo", "bar", "baz", "qux"]; assert_eq!(v.swap_remove(1), "bar"); assert_eq!(v, ["foo", "qux", "baz"]); assert_eq!(v.swap_remove(0), "foo"); assert_eq!(v, ["baz", "qux"]);
pub fn insert(&mut self, index: usize, element: T)
1.0.0[src]
Inserts an element at position index
within the vector, shifting all
elements after it to the right.
Panics
Panics if index > len
.
Examples
let mut vec = vec![1, 2, 3]; vec.insert(1, 4); assert_eq!(vec, [1, 4, 2, 3]); vec.insert(4, 5); assert_eq!(vec, [1, 4, 2, 3, 5]);
pub fn remove(&mut self, index: usize) -> T
1.0.0[src]
Removes and returns the element at position index
within the vector,
shifting all elements after it to the left.
Panics
Panics if index
is out of bounds.
Examples
let mut v = vec![1, 2, 3]; assert_eq!(v.remove(1), 2); assert_eq!(v, [1, 3]);
pub fn retain<F>(&mut self, f: F) where
F: FnMut(&T) -> bool,
1.0.0[src]
F: FnMut(&T) -> bool,
Retains only the elements specified by the predicate.
In other words, remove all elements e
such that f(&e)
returns false
.
This method operates in place, visiting each element exactly once in the
original order, and preserves the order of the retained elements.
Examples
let mut vec = vec![1, 2, 3, 4]; vec.retain(|&x| x % 2 == 0); assert_eq!(vec, [2, 4]);
The exact order may be useful for tracking external state, like an index.
let mut vec = vec![1, 2, 3, 4, 5]; let keep = [false, true, true, false, true]; let mut i = 0; vec.retain(|_| (keep[i], i += 1).0); assert_eq!(vec, [2, 3, 5]);
pub fn dedup_by_key<F, K>(&mut self, key: F) where
F: FnMut(&mut T) -> K,
K: PartialEq<K>,
1.16.0[src]
F: FnMut(&mut T) -> K,
K: PartialEq<K>,
Removes all but the first of consecutive elements in the vector that resolve to the same key.
If the vector is sorted, this removes all duplicates.
Examples
let mut vec = vec![10, 20, 21, 30, 20]; vec.dedup_by_key(|i| *i / 10); assert_eq!(vec, [10, 20, 30, 20]);
pub fn dedup_by<F>(&mut self, same_bucket: F) where
F: FnMut(&mut T, &mut T) -> bool,
1.16.0[src]
F: FnMut(&mut T, &mut T) -> bool,
Removes all but the first of consecutive elements in the vector satisfying a given equality relation.
The same_bucket
function is passed references to two elements from the vector and
must determine if the elements compare equal. The elements are passed in opposite order
from their order in the slice, so if same_bucket(a, b)
returns true
, a
is removed.
If the vector is sorted, this removes all duplicates.
Examples
let mut vec = vec!["foo", "bar", "Bar", "baz", "bar"]; vec.dedup_by(|a, b| a.eq_ignore_ascii_case(b)); assert_eq!(vec, ["foo", "bar", "baz", "bar"]);
pub fn push(&mut self, value: T)
1.0.0[src]
Appends an element to the back of a collection.
Panics
Panics if the number of elements in the vector overflows a usize
.
Examples
let mut vec = vec![1, 2]; vec.push(3); assert_eq!(vec, [1, 2, 3]);
pub fn pop(&mut self) -> Option<T>
1.0.0[src]
Removes the last element from a vector and returns it, or None
if it
is empty.
Examples
let mut vec = vec![1, 2, 3]; assert_eq!(vec.pop(), Some(3)); assert_eq!(vec, [1, 2]);
pub fn append(&mut self, other: &mut Vec<T>)
1.4.0[src]
Moves all the elements of other
into Self
, leaving other
empty.
Panics
Panics if the number of elements in the vector overflows a usize
.
Examples
let mut vec = vec![1, 2, 3]; let mut vec2 = vec![4, 5, 6]; vec.append(&mut vec2); assert_eq!(vec, [1, 2, 3, 4, 5, 6]); assert_eq!(vec2, []);
pub fn drain<R>(&mut self, range: R) -> Drain<T> where
R: RangeBounds<usize>,
1.6.0[src]
R: RangeBounds<usize>,
Creates a draining iterator that removes the specified range in the vector and yields the removed items.
Note 1: The element range is removed even if the iterator is only partially consumed or not consumed at all.
Note 2: It is unspecified how many elements are removed from the vector
if the Drain
value is leaked.
Panics
Panics if the starting point is greater than the end point or if the end point is greater than the length of the vector.
Examples
let mut v = vec![1, 2, 3]; let u: Vec<_> = v.drain(1..).collect(); assert_eq!(v, &[1]); assert_eq!(u, &[2, 3]); // A full range clears the vector v.drain(..); assert_eq!(v, &[]);
pub fn clear(&mut self)
1.0.0[src]
Clears the vector, removing all values.
Note that this method has no effect on the allocated capacity of the vector.
Examples
let mut v = vec![1, 2, 3]; v.clear(); assert!(v.is_empty());
pub fn len(&self) -> usize
1.0.0[src]
Returns the number of elements in the vector, also referred to as its 'length'.
Examples
let a = vec![1, 2, 3]; assert_eq!(a.len(), 3);
pub fn is_empty(&self) -> bool
1.0.0[src]
Returns true
if the vector contains no elements.
Examples
let mut v = Vec::new(); assert!(v.is_empty()); v.push(1); assert!(!v.is_empty());
pub fn split_off(&mut self, at: usize) -> Vec<T>
1.4.0[src]
Splits the collection into two at the given index.
Returns a newly allocated vector containing the elements in the range
[at, len)
. After the call, the original vector will be left containing
the elements [0, at)
with its previous capacity unchanged.
Panics
Panics if at > len
.
Examples
let mut vec = vec![1,2,3]; let vec2 = vec.split_off(1); assert_eq!(vec, [1]); assert_eq!(vec2, [2, 3]);
pub fn resize_with<F>(&mut self, new_len: usize, f: F) where
F: FnMut() -> T,
1.33.0[src]
F: FnMut() -> T,
Resizes the Vec
in-place so that len
is equal to new_len
.
If new_len
is greater than len
, the Vec
is extended by the
difference, with each additional slot filled with the result of
calling the closure f
. The return values from f
will end up
in the Vec
in the order they have been generated.
If new_len
is less than len
, the Vec
is simply truncated.
This method uses a closure to create new values on every push. If
you'd rather Clone
a given value, use resize
. If you want
to use the Default
trait to generate values, you can pass
Default::default()
as the second argument.
Examples
let mut vec = vec![1, 2, 3]; vec.resize_with(5, Default::default); assert_eq!(vec, [1, 2, 3, 0, 0]); let mut vec = vec![]; let mut p = 1; vec.resize_with(4, || { p *= 2; p }); assert_eq!(vec, [2, 4, 8, 16]);
pub fn resize(&mut self, new_len: usize, value: T)
1.5.0[src]
Resizes the Vec
in-place so that len
is equal to new_len
.
If new_len
is greater than len
, the Vec
is extended by the
difference, with each additional slot filled with value
.
If new_len
is less than len
, the Vec
is simply truncated.
This method requires Clone
to be able clone the passed value. If
you need more flexibility (or want to rely on Default
instead of
Clone
), use resize_with
.
Examples
let mut vec = vec!["hello"]; vec.resize(3, "world"); assert_eq!(vec, ["hello", "world", "world"]); let mut vec = vec![1, 2, 3, 4]; vec.resize(2, 0); assert_eq!(vec, [1, 2]);
pub fn extend_from_slice(&mut self, other: &[T])
1.6.0[src]
Clones and appends all elements in a slice to the Vec
.
Iterates over the slice other
, clones each element, and then appends
it to this Vec
. The other
vector is traversed in-order.
Note that this function is same as extend
except that it is
specialized to work with slices instead. If and when Rust gets
specialization this function will likely be deprecated (but still
available).
Examples
let mut vec = vec![1]; vec.extend_from_slice(&[2, 3, 4]); assert_eq!(vec, [1, 2, 3, 4]);
pub fn resize_default(&mut self, new_len: usize)
[src]
This is moving towards being removed in favor of .resize_with(Default::default)
. If you disagree, please comment in the tracking issue.
vec_resize_default
)Resizes the Vec
in-place so that len
is equal to new_len
.
If new_len
is greater than len
, the Vec
is extended by the
difference, with each additional slot filled with Default::default()
.
If new_len
is less than len
, the Vec
is simply truncated.
This method uses Default
to create new values on every push. If
you'd rather Clone
a given value, use resize
.
Examples
#![feature(vec_resize_default)] let mut vec = vec![1, 2, 3]; vec.resize_default(5); assert_eq!(vec, [1, 2, 3, 0, 0]); let mut vec = vec![1, 2, 3, 4]; vec.resize_default(2); assert_eq!(vec, [1, 2]);
pub fn remove_item<V>(&mut self, item: &V) -> Option<T> where
T: PartialEq<V>,
[src]
T: PartialEq<V>,
🔬 This is a nightly-only experimental API. (vec_remove_item
)
recently added
Removes the first instance of item
from the vector if the item exists.
Examples
let mut vec = vec![1, 2, 3, 1]; vec.remove_item(&1); assert_eq!(vec, vec![2, 3, 1]);
pub fn splice<R, I>(
&mut self,
range: R,
replace_with: I
) -> Splice<<I as IntoIterator>::IntoIter> where
I: IntoIterator<Item = T>,
R: RangeBounds<usize>,
1.21.0[src]
&mut self,
range: R,
replace_with: I
) -> Splice<<I as IntoIterator>::IntoIter> where
I: IntoIterator<Item = T>,
R: RangeBounds<usize>,
Creates a splicing iterator that replaces the specified range in the vector
with the given replace_with
iterator and yields the removed items.
replace_with
does not need to be the same length as range
.
The element range is removed even if the iterator is not consumed until the end.
It is unspecified how many elements are removed from the vector
if the Splice
value is leaked.
The input iterator replace_with
is only consumed when the Splice
value is dropped.
This is optimal if:
- The tail (elements in the vector after
range
) is empty, - or
replace_with
yields fewer elements thanrange
’s length - or the lower bound of its
size_hint()
is exact.
Otherwise, a temporary vector is allocated and the tail is moved twice.
Panics
Panics if the starting point is greater than the end point or if the end point is greater than the length of the vector.
Examples
let mut v = vec![1, 2, 3]; let new = [7, 8]; let u: Vec<_> = v.splice(..2, new.iter().cloned()).collect(); assert_eq!(v, &[7, 8, 3]); assert_eq!(u, &[1, 2]);
pub fn drain_filter<F>(&mut self, filter: F) -> DrainFilter<T, F> where
F: FnMut(&mut T) -> bool,
[src]
F: FnMut(&mut T) -> bool,
🔬 This is a nightly-only experimental API. (drain_filter
)
recently added
Creates an iterator which uses a closure to determine if an element should be removed.
If the closure returns true, then the element is removed and yielded. If the closure returns false, the element will remain in the vector and will not be yielded by the iterator.
Using this method is equivalent to the following code:
let mut i = 0; while i != vec.len() { if some_predicate(&mut vec[i]) { let val = vec.remove(i); // your code here } else { i += 1; } }
But drain_filter
is easier to use. drain_filter
is also more efficient,
because it can backshift the elements of the array in bulk.
Note that drain_filter
also lets you mutate every element in the filter closure,
regardless of whether you choose to keep or remove it.
Examples
Splitting an array into evens and odds, reusing the original allocation:
#![feature(drain_filter)] let mut numbers = vec![1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14, 15]; let evens = numbers.drain_filter(|x| *x % 2 == 0).collect::<Vec<_>>(); let odds = numbers; assert_eq!(evens, vec![2, 4, 6, 8, 14]); assert_eq!(odds, vec![1, 3, 5, 9, 11, 13, 15]);
Trait Implementations
impl Clone for BattleLog
[src]
impl Debug for BattleLog
[src]
impl Deref for BattleLog
[src]
type Target = Vec<Battle>
The resulting type after dereferencing.
fn deref(&self) -> &Vec<Battle>
[src]
Obtain the player's battles - dereferencing returns the items
field.
Examples
use brawl_api::{Client, BattleLog, traits::*}; let client = Client::new("my auth token"); let battlelog = BattleLog::fetch( &client, // <- the client containing the auth key "#PLAYER_TAG_HERE" // <- the player whose battlelog should be fetched )?; assert_eq!(battlelog.items, *battlelog);
impl DerefMut for BattleLog
[src]
fn deref_mut(&mut self) -> &mut Vec<Battle>
[src]
Obtain the player's battles - dereferencing returns the items
field.
Examples
use brawl_api::{Client, BattleLog, traits::*}; let client = Client::new("my auth token"); let battlelog = BattleLog::fetch( &client, // <- the client containing the auth key "#PLAYER_TAG_HERE" // <- the player whose battlelog should be fetched )?; assert_eq!(battlelog.items, *battlelog);
impl<'de> Deserialize<'de> for BattleLog
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl Eq for BattleLog
[src]
impl FetchFrom<Player> for BattleLog
[src]
fn fetch_from(client: &Client, player: &Player) -> Result<BattleLog>
[src]
(Sync) Fetches a given player's battlelog (a BattleLog
instance) by using data from
an existing Player
instance. (See BattleLog::fetch
for more details.)
Note that this is simply to minimize efforts when a player was already fetched. If
no Player
instance was previously present, it is recommended to simply BattleLog::fetch
with the specific player's tag.
Examples
use brawl_api::{Client, Player, BattleLog, traits::*}; let my_client = Client::new("my auth token"); let player = Player::fetch(&my_client, "#PLAYERTAGHERE")?; // do stuff with player... let player_battlelog = BattleLog::fetch_from(&my_client, &player)?; // now the player's battlelog is available for use
fn a_fetch_from<'life0, 'life1, 'async_trait>(
client: &'life0 Client,
player: &'life1 Player
) -> Pin<Box<dyn Future<Output = Result<BattleLog>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
[src]
client: &'life0 Client,
player: &'life1 Player
) -> Pin<Box<dyn Future<Output = Result<BattleLog>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
(Async) Fetches a given player's battlelog (a BattleLog
instance) by using data from
an existing Player
instance. (See BattleLog::fetch
for more details.)
Note that this is simply to minimize efforts when a player was already fetched. If
no Player
instance was previously present, it is recommended to simply BattleLog::fetch
with the specific player's tag.
Examples
use brawl_api::{Client, Player, BattleLog, traits::*}; let my_client = Client::new("my auth token"); let player = Player::a_fetch(&my_client, "#PLAYERTAGHERE").await?; // do stuff with player... let player_battlelog = BattleLog::a_fetch_from(&my_client, &player).await?; // now the player's battlelog is available for use
impl GetFetchProp for BattleLog
[src]
impl Hash for BattleLog
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl PartialEq<BattleLog> for BattleLog
[src]
impl PropFetchable for BattleLog
[src]
type Property = str
fn fetch(client: &Client, tag: &str) -> Result<BattleLog>
[src]
(Sync) Fetches a player's battlelog (most recent battles), given its tag.
Errors
This function may error:
- While requesting (will return an
Error::Request
); - After receiving a bad status code (API or other error - returns an
Error::Status
); - After a ratelimit is indicated by the API, while also specifying when it is lifted (
Error::Ratelimited
); - While parsing incoming JSON (will return an
Error::Json
).
(All of those, of course, wrapped inside an Err
.)
Examples
use brawl_api::{Client, Player, BattleLog, traits::*}; let my_client = Client::new("my auth token"); let player_battlelog = BattleLog::fetch(&my_client, "#PLAYERTAGHERE")?; // now the player's battlelog is available for use
fn a_fetch<'life0, 'async_trait>(
client: &'life0 Client,
tag: &'async_trait str
) -> Pin<Box<dyn Future<Output = Result<BattleLog>> + Send + 'async_trait>> where
Self: 'async_trait,
Self::Property: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
[src]
client: &'life0 Client,
tag: &'async_trait str
) -> Pin<Box<dyn Future<Output = Result<BattleLog>> + Send + 'async_trait>> where
Self: 'async_trait,
Self::Property: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
(Async) Fetches a player's battlelog (most recent battles), given its tag.
Errors
This function may error:
- While requesting (will return an
Error::Request
); - After receiving a bad status code (API or other error - returns an
Error::Status
); - After a ratelimit is indicated by the API, while also specifying when it is lifted (
Error::Ratelimited
); - While parsing incoming JSON (will return an
Error::Json
).
(All of those, of course, wrapped inside an Err
.)
Examples
use brawl_api::{Client, Player, BattleLog, traits::*}; let my_client = Client::new("my auth token"); let player_battlelog = BattleLog::a_fetch(&my_client, "#PLAYERTAGHERE").await?; // now the player's battlelog is available for use
impl Serialize for BattleLog
[src]
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl StructuralEq for BattleLog
[src]
impl StructuralPartialEq for BattleLog
[src]
Auto Trait Implementations
impl RefUnwindSafe for BattleLog
impl Send for BattleLog
impl Sync for BattleLog
impl Unpin for BattleLog
impl UnwindSafe for BattleLog
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
fn equivalent(&self, key: &K) -> bool
[src]
impl<T> FetchFrom<T> for T where
T: Clone + Send + Sync,
[src]
T: Clone + Send + Sync,
fn fetch_from(&Client, &T) -> Result<T, Error>
[src]
(Sync) Returns a copy of the current instance when attempting to fetch from itself.
In order to re-fetch, see Refetchable
.
Errors
Never errors; is only a Result
in order to match the trait signature.
fn a_fetch_from<'life0, 'life1, 'async_trait>(
&'life0 Client,
&'life1 T
) -> Pin<Box<dyn Future<Output = Result<T, Error>> + 'async_trait + Send>> where
'life0: 'async_trait,
'life1: 'async_trait,
T: 'async_trait,
[src]
&'life0 Client,
&'life1 T
) -> Pin<Box<dyn Future<Output = Result<T, Error>> + 'async_trait + Send>> where
'life0: 'async_trait,
'life1: 'async_trait,
T: 'async_trait,
(Async) Returns a copy of the current instance when attempting to fetch from itself.
In order to re-fetch, see Refetchable
.
Errors
Never errors; is only a Result
in order to match the trait signature.
impl<T, U> FetchInto<U> for T where
T: Sync + Send,
U: FetchFrom<T> + Sync + Send,
[src]
T: Sync + Send,
U: FetchFrom<T> + Sync + Send,
fn fetch_into(&Self, &Client) -> Result<U, Error>
[src]
fn a_fetch_into<'life0, 'life1, 'async_trait>(
&'life0 Self,
&'life1 Client
) -> Pin<Box<dyn Future<Output = Result<U, Error>> + 'async_trait + Send>> where
'life0: 'async_trait,
'life1: 'async_trait,
T: 'async_trait,
U: 'async_trait,
[src]
&'life0 Self,
&'life1 Client
) -> Pin<Box<dyn Future<Output = Result<U, Error>> + 'async_trait + Send>> where
'life0: 'async_trait,
'life1: 'async_trait,
T: 'async_trait,
U: 'async_trait,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> PropRouteable for T where
T: GetFetchProp,
[src]
T: GetFetchProp,
type Property = <T as GetFetchProp>::Property
fn get_route(&<T as PropRouteable>::Property) -> Route
[src]
impl<T> Refetchable for T where
T: PropFetchable<Property = <T as GetFetchProp>::Property> + GetFetchProp + Send + Sync,
<T as GetFetchProp>::Property: Sync,
<T as GetFetchProp>::Property: Send,
[src]
T: PropFetchable<Property = <T as GetFetchProp>::Property> + GetFetchProp + Send + Sync,
<T as GetFetchProp>::Property: Sync,
<T as GetFetchProp>::Property: Send,
fn refetch(&Self, &Client) -> Result<T, Error>
[src]
fn a_refetch<'life0, 'life1, 'async_trait>(
&'life0 Self,
&'life1 Client
) -> Pin<Box<dyn Future<Output = Result<T, Error>> + 'async_trait + Send>> where
'life0: 'async_trait,
'life1: 'async_trait,
T: 'async_trait,
<T as GetFetchProp>::Property: 'async_trait,
[src]
&'life0 Self,
&'life1 Client
) -> Pin<Box<dyn Future<Output = Result<T, Error>> + 'async_trait + Send>> where
'life0: 'async_trait,
'life1: 'async_trait,
T: 'async_trait,
<T as GetFetchProp>::Property: 'async_trait,
fn refetch_update(&mut self, client: &Client) -> Result<&Self>
[src]
fn a_refetch_update<'life0, 'async_trait>(
&'async_trait mut self,
client: &'life0 Client
) -> Pin<Box<dyn Future<Output = Result<&'async_trait Self>> + Send + 'async_trait>> where
Self: Send + Sync,
'life0: 'async_trait,
Self: Send + 'async_trait,
[src]
&'async_trait mut self,
client: &'life0 Client
) -> Pin<Box<dyn Future<Output = Result<&'async_trait Self>> + Send + 'async_trait>> where
Self: Send + Sync,
'life0: 'async_trait,
Self: Send + 'async_trait,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,