feat(headers): add q function to ease creating Quality values
This commit is contained in:
@@ -22,7 +22,7 @@ use unicase::UniCase;
|
|||||||
use self::cell::OptCell;
|
use self::cell::OptCell;
|
||||||
use {http, HttpResult, HttpError};
|
use {http, HttpResult, HttpError};
|
||||||
|
|
||||||
pub use self::shared::{Encoding, EntityTag, Quality, QualityItem, qitem};
|
pub use self::shared::{Encoding, EntityTag, Quality, QualityItem, qitem, q};
|
||||||
pub use self::common::*;
|
pub use self::common::*;
|
||||||
|
|
||||||
mod cell;
|
mod cell;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
pub use self::encoding::Encoding;
|
pub use self::encoding::Encoding;
|
||||||
pub use self::entity::EntityTag;
|
pub use self::entity::EntityTag;
|
||||||
pub use self::quality_item::{Quality, QualityItem, qitem};
|
pub use self::quality_item::{Quality, QualityItem, qitem, q};
|
||||||
|
|
||||||
mod encoding;
|
mod encoding;
|
||||||
mod entity;
|
mod entity;
|
||||||
|
|||||||
@@ -11,11 +11,10 @@ use std::str;
|
|||||||
|
|
||||||
/// Represents a quality used in quality values.
|
/// Represents a quality used in quality values.
|
||||||
///
|
///
|
||||||
/// `Quality` should only be created using the `FromPrimitve` trait methods `from_f32` and
|
/// Can be created with the `q` function.
|
||||||
/// `from_f64`, they take a value between 0.0 and 1.0. To create a quality with the value 1.0, the
|
|
||||||
/// default you can use `let q: Quality = Default::default()`.
|
|
||||||
///
|
///
|
||||||
/// # Implementation notes
|
/// # Implementation notes
|
||||||
|
///
|
||||||
/// The quality value is defined as a number between 0 and 1 with three decimal places. This means
|
/// The quality value is defined as a number between 0 and 1 with three decimal places. This means
|
||||||
/// there are 1000 possible values. Since floating point numbers are not exact and the smallest
|
/// there are 1000 possible values. Since floating point numbers are not exact and the smallest
|
||||||
/// floating point data type (`f32`) consumes four bytes, hyper uses an `u16` value to store the
|
/// floating point data type (`f32`) consumes four bytes, hyper uses an `u16` value to store the
|
||||||
@@ -149,6 +148,11 @@ pub fn qitem<T>(item: T) -> QualityItem<T> {
|
|||||||
QualityItem::new(item, Default::default())
|
QualityItem::new(item, Default::default())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Convenience function to create a `Quality` fromt a float.
|
||||||
|
pub fn q(f: f32) -> Quality {
|
||||||
|
FromPrimitive::from_f32(f).expect("q value must be between 0.0 and 1.0")
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use std::num::FromPrimitive;
|
use std::num::FromPrimitive;
|
||||||
|
|||||||
Reference in New Issue
Block a user