chore: avoid cloning entity id
This commit is contained in:
@@ -46,7 +46,7 @@ impl From<Entity> for Product {
|
|||||||
// Create a new `Product` from the entity's attributes.
|
// Create a new `Product` from the entity's attributes.
|
||||||
Self {
|
Self {
|
||||||
// Set the product's ID from the entity's ID.
|
// Set the product's ID from the entity's ID.
|
||||||
id: value.id(),
|
id: value.id().to_string(),
|
||||||
// Unwrap the "name" attribute to get the product's name.
|
// Unwrap the "name" attribute to get the product's name.
|
||||||
name: value.unwrap("name").expect("name is always present"),
|
name: value.unwrap("name").expect("name is always present"),
|
||||||
// Unwrap the optional "model" attribute to get the product's model.
|
// Unwrap the optional "model" attribute to get the product's model.
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ impl From<Entity> for Component {
|
|||||||
// `from` is a function that converts an `Entity` into a `Component`.
|
// `from` is a function that converts an `Entity` into a `Component`.
|
||||||
fn from(value: Entity) -> Self {
|
fn from(value: Entity) -> Self {
|
||||||
Self {
|
Self {
|
||||||
id: value.id(),
|
id: value.id().to_string(),
|
||||||
part_number: value
|
part_number: value
|
||||||
.unwrap("part_number")
|
.unwrap("part_number")
|
||||||
.expect("part_number is always present"),
|
.expect("part_number is always present"),
|
||||||
|
|||||||
@@ -41,18 +41,18 @@ impl From<Entity> for Product {
|
|||||||
if let Some(ref subclass) = value.subclass() {
|
if let Some(ref subclass) = value.subclass() {
|
||||||
match subclass.as_ref() {
|
match subclass.as_ref() {
|
||||||
"laptop" => Product::Laptop(Laptop {
|
"laptop" => Product::Laptop(Laptop {
|
||||||
id: value.id(),
|
id: value.id().to_string(),
|
||||||
model: value.unwrap("model").expect("model is mandatory"),
|
model: value.unwrap("model").expect("model is mandatory"),
|
||||||
price: value.unwrap("price").expect("price is mandatory"),
|
price: value.unwrap("price").expect("price is mandatory"),
|
||||||
}),
|
}),
|
||||||
"display" => Product::Display(Display {
|
"display" => Product::Display(Display {
|
||||||
id: value.id(),
|
id: value.id().to_string(),
|
||||||
model: value.unwrap("model").expect("model is mandatory"),
|
model: value.unwrap("model").expect("model is mandatory"),
|
||||||
price: value.unwrap("price").expect("price is mandatory"),
|
price: value.unwrap("price").expect("price is mandatory"),
|
||||||
resolution: value.unwrap("resolution").expect("resolution is mandatory"),
|
resolution: value.unwrap("resolution").expect("resolution is mandatory"),
|
||||||
}),
|
}),
|
||||||
"mouse" => Product::Mouse(Mouse {
|
"mouse" => Product::Mouse(Mouse {
|
||||||
id: value.id(),
|
id: value.id().to_string(),
|
||||||
model: value.unwrap("model").expect("model is mandatory"),
|
model: value.unwrap("model").expect("model is mandatory"),
|
||||||
price: value.unwrap("price").expect("price is mandatory"),
|
price: value.unwrap("price").expect("price is mandatory"),
|
||||||
wireless: value.unwrap("wireless").expect("wireless is mandatory"),
|
wireless: value.unwrap("wireless").expect("wireless is mandatory"),
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
//!
|
//!
|
||||||
//! fn try_from(entity: Entity) -> Result<Self, Self::Error> {
|
//! fn try_from(entity: Entity) -> Result<Self, Self::Error> {
|
||||||
//! Ok(Self {
|
//! Ok(Self {
|
||||||
//! id: entity.id(),
|
//! id: entity.id().to_string(),
|
||||||
//! name: entity.unwrap("name").map_err(|_| FailedTo::ConvertEntity)?,
|
//! name: entity.unwrap("name").map_err(|_| FailedTo::ConvertEntity)?,
|
||||||
//! price: entity.unwrap("price").map_err(|_| FailedTo::ConvertEntity)?,
|
//! price: entity.unwrap("price").map_err(|_| FailedTo::ConvertEntity)?,
|
||||||
//! in_stock: entity.unwrap("in_stock").map_err(|_| FailedTo::ConvertEntity)?,
|
//! in_stock: entity.unwrap("in_stock").map_err(|_| FailedTo::ConvertEntity)?,
|
||||||
|
|||||||
@@ -195,8 +195,8 @@ impl Entity {
|
|||||||
.map(|value| value.unwrap_or(default))
|
.map(|value| value.unwrap_or(default))
|
||||||
}
|
}
|
||||||
/// Returns the ID of the entity.
|
/// Returns the ID of the entity.
|
||||||
pub fn id(&self) -> String {
|
pub fn id(&self) -> &str {
|
||||||
self.id.clone()
|
&self.id
|
||||||
}
|
}
|
||||||
/// Returns the subclass of the entity, if it has one.
|
/// Returns the subclass of the entity, if it has one.
|
||||||
pub fn subclass(&self) -> Option<String> {
|
pub fn subclass(&self) -> Option<String> {
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ impl From<Item> for Entity {
|
|||||||
impl From<Entity> for Item {
|
impl From<Entity> for Item {
|
||||||
fn from(entity: Entity) -> Self {
|
fn from(entity: Entity) -> Self {
|
||||||
Self {
|
Self {
|
||||||
id: entity.id(),
|
id: entity.id().to_string(),
|
||||||
first_seen: entity.ref_date.expect("ref date is always present"),
|
first_seen: entity.ref_date.expect("ref date is always present"),
|
||||||
name: entity.unwrap("name").expect("name is always present"),
|
name: entity.unwrap("name").expect("name is always present"),
|
||||||
price: entity.unwrap("price").expect("price is always present"),
|
price: entity.unwrap("price").expect("price is always present"),
|
||||||
|
|||||||
Reference in New Issue
Block a user