Add support for primitive to factory enum conversion
This commit is contained in:
parent
0f2046a206
commit
fadafc5bb8
3 changed files with 35 additions and 0 deletions
|
@ -14,6 +14,7 @@ reqwest = { version = "^0.11", features = ["json"]}
|
||||||
url = "^2.2"
|
url = "^2.2"
|
||||||
ureq = { version = "^2", features = ["json"], optional = true}
|
ureq = { version = "^2", features = ["json"], optional = true}
|
||||||
base64 = "^0.13"
|
base64 = "^0.13"
|
||||||
|
num_enum = "^0.5"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
tokio = { version = "1.4.0", features = ["macros"]}
|
tokio = { version = "1.4.0", features = ["macros"]}
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
use reqwest::{RequestBuilder, Error};
|
use reqwest::{RequestBuilder, Error};
|
||||||
|
use num_enum::{TryFromPrimitive};
|
||||||
|
|
||||||
use crate::robocraft::{FactoryInfo, RoboShopItemsInfo};
|
use crate::robocraft::{FactoryInfo, RoboShopItemsInfo};
|
||||||
use crate::robocraft::factory_json::ListPayload;
|
use crate::robocraft::factory_json::ListPayload;
|
||||||
|
|
||||||
|
#[derive(Eq, PartialEq, TryFromPrimitive)]
|
||||||
|
#[repr(u8)]
|
||||||
pub enum FactoryOrderType {
|
pub enum FactoryOrderType {
|
||||||
Suggested = 0,
|
Suggested = 0,
|
||||||
CombatRating = 1,
|
CombatRating = 1,
|
||||||
|
@ -12,6 +15,8 @@ pub enum FactoryOrderType {
|
||||||
MostBought = 5,
|
MostBought = 5,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Eq, PartialEq, TryFromPrimitive)]
|
||||||
|
#[repr(u32)]
|
||||||
pub enum FactoryMovementType {
|
pub enum FactoryMovementType {
|
||||||
Wheels = 100000,
|
Wheels = 100000,
|
||||||
Hovers = 200000,
|
Hovers = 200000,
|
||||||
|
@ -27,6 +32,8 @@ pub enum FactoryMovementType {
|
||||||
Propellers=1200000
|
Propellers=1200000
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Eq, PartialEq, TryFromPrimitive)]
|
||||||
|
#[repr(u32)]
|
||||||
pub enum FactoryWeaponType {
|
pub enum FactoryWeaponType {
|
||||||
Laser=10000000,
|
Laser=10000000,
|
||||||
PlasmaLauncher=20000000,
|
PlasmaLauncher=20000000,
|
||||||
|
@ -40,6 +47,8 @@ pub enum FactoryWeaponType {
|
||||||
ChainShredder=75000000,
|
ChainShredder=75000000,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Eq, PartialEq, TryFromPrimitive)]
|
||||||
|
#[repr(u8)]
|
||||||
pub enum FactoryTextSearchType {
|
pub enum FactoryTextSearchType {
|
||||||
All=0,
|
All=0,
|
||||||
Player=1,
|
Player=1,
|
||||||
|
@ -94,6 +103,12 @@ impl FactorySearchBuilder {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn movement_raw(mut self, filter: String) -> Self {
|
||||||
|
self.payload.movement_filter = filter.clone();
|
||||||
|
self.payload.movement_category_filter = filter.clone();
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
pub fn weapon_or(mut self, weapon_type: FactoryWeaponType) -> Self {
|
pub fn weapon_or(mut self, weapon_type: FactoryWeaponType) -> Self {
|
||||||
if self.payload.weapon_filter == "" {
|
if self.payload.weapon_filter == "" {
|
||||||
self.payload.weapon_filter = format!("{},{}", &self.payload.weapon_filter, weapon_type as isize);
|
self.payload.weapon_filter = format!("{},{}", &self.payload.weapon_filter, weapon_type as isize);
|
||||||
|
@ -104,6 +119,12 @@ impl FactorySearchBuilder {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn weapon_raw(mut self, filter: String) -> Self {
|
||||||
|
self.payload.weapon_filter = filter.clone();
|
||||||
|
self.payload.weapon_category_filter = filter.clone();
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
pub fn cpu_range(mut self, min: isize, max: isize) -> Self {
|
pub fn cpu_range(mut self, min: isize, max: isize) -> Self {
|
||||||
self.payload.minimum_cpu = min;
|
self.payload.minimum_cpu = min;
|
||||||
self.payload.maximum_cpu = max;
|
self.payload.maximum_cpu = max;
|
||||||
|
|
|
@ -3,6 +3,7 @@ use ureq::{Request, Response, Error};
|
||||||
use crate::robocraft::{FactoryInfo, RoboShopItemsInfo, FactoryTextSearchType, FactoryWeaponType, FactoryMovementType, FactoryOrderType};
|
use crate::robocraft::{FactoryInfo, RoboShopItemsInfo, FactoryTextSearchType, FactoryWeaponType, FactoryMovementType, FactoryOrderType};
|
||||||
use crate::robocraft::{ListPayload};
|
use crate::robocraft::{ListPayload};
|
||||||
|
|
||||||
|
#[derive(Clone)]
|
||||||
pub struct FactorySearchBuilder {
|
pub struct FactorySearchBuilder {
|
||||||
reqwest_builder: Request,
|
reqwest_builder: Request,
|
||||||
payload: ListPayload,
|
payload: ListPayload,
|
||||||
|
@ -41,6 +42,12 @@ impl FactorySearchBuilder {
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
pub fn movement_raw(mut self, filter: String) -> Self {
|
||||||
|
self.payload.movement_filter = filter.clone();
|
||||||
|
self.payload.movement_category_filter = filter.clone();
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
pub fn movement_or(mut self, movement_type: FactoryMovementType) -> Self {
|
pub fn movement_or(mut self, movement_type: FactoryMovementType) -> Self {
|
||||||
if self.payload.movement_filter == "" {
|
if self.payload.movement_filter == "" {
|
||||||
self.payload.movement_filter = format!("{},{}", &self.payload.movement_filter, movement_type as isize);
|
self.payload.movement_filter = format!("{},{}", &self.payload.movement_filter, movement_type as isize);
|
||||||
|
@ -51,6 +58,12 @@ impl FactorySearchBuilder {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn weapon_raw(mut self, filter: String) -> Self {
|
||||||
|
self.payload.weapon_filter = filter.clone();
|
||||||
|
self.payload.weapon_category_filter = filter.clone();
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
pub fn weapon_or(mut self, weapon_type: FactoryWeaponType) -> Self {
|
pub fn weapon_or(mut self, weapon_type: FactoryWeaponType) -> Self {
|
||||||
if self.payload.weapon_filter == "" {
|
if self.payload.weapon_filter == "" {
|
||||||
self.payload.weapon_filter = format!("{},{}", &self.payload.weapon_filter, weapon_type as isize);
|
self.payload.weapon_filter = format!("{},{}", &self.payload.weapon_filter, weapon_type as isize);
|
||||||
|
|
Loading…
Add table
Reference in a new issue