pub struct Category {
pub id: i32,
pub name: String,
pub slug: String,
pub parent: i32,
pub description: String,
pub display: DisplayOption,
pub image: Option<ProductImage>,
pub menu_order: i32,
pub count: i32,
}
Fields§
§id: i32
Unique identifier for the resource.
name: String
Category name.
slug: String
An alphanumeric identifier for the resource unique to its type.
parent: i32
The ID for the parent of the resource.
description: String
HTML description of the resource.
display: DisplayOption
Category archive display type. Options: default, products, subcategories and both. Default is default.
image: Option<ProductImage>
Image data.
Menu order, used to custom sort the resource.
count: i32
Number of published products for the resource. READ-ONLY
Implementations§
Source§impl Category
impl Category
Sourcepub fn create<T: ToString>(name: T) -> CategoryCreate
pub fn create<T: ToString>(name: T) -> CategoryCreate
Examples found in repository?
examples/category.rs (line 15)
6async fn main() -> anyhow::Result<()> {
7 tracing_subscriber::fmt::init();
8 let config = Config::new("woo.toml")?;
9 let client = ApiClient::new(&config)?;
10 let categories = client.list_all::<Category>().await?;
11 info!("Got {} categories", categories.len());
12 let random_id = categories.first().unwrap().id;
13 let retrieved: Category = client.retrieve(random_id).await?;
14 info!("Retrieved category name: {}", retrieved.name);
15 let create = Category::create("Test Category")
16 .parent(retrieved.id)
17 .description("Test description")
18 .display(DisplayOption::Products)
19 .image("https://woocommerce.github.io/woocommerce-rest-api-docs/images/logo-95f5c1ab.png");
20 let batch_create = create.clone();
21 let created: Category = client.create(create).await?;
22 info!("Category with id: {} created", created.id);
23 let update = Category::update().description("Some description");
24 let updated: Category = client.update(created.id, update).await?;
25 info!("New description is {}", updated.description);
26 let deleted: Category = client.delete(updated.id).await?;
27 info!("Category {} deleted", deleted.name);
28 let batch_created: Vec<Category> = client.batch_create(vec![batch_create]).await?;
29 info!("Batch created {} categories", batch_created.len());
30 let batch_update = Category::update()
31 .id(batch_created.first().unwrap().id)
32 .description("Some description");
33 let batch_updated: Vec<Category> = client.batch_update(vec![batch_update]).await?;
34 let id = batch_updated.first().unwrap().id;
35 info!("Batch updated categories contains category with id: {id}");
36 let batch_deleted: Vec<Category> = client.batch_delete(vec![id]).await?;
37 info!("Deleted {} categories", batch_deleted.len());
38 Ok(())
39}
Sourcepub fn update() -> CategoryUpdate
pub fn update() -> CategoryUpdate
Examples found in repository?
examples/category.rs (line 23)
6async fn main() -> anyhow::Result<()> {
7 tracing_subscriber::fmt::init();
8 let config = Config::new("woo.toml")?;
9 let client = ApiClient::new(&config)?;
10 let categories = client.list_all::<Category>().await?;
11 info!("Got {} categories", categories.len());
12 let random_id = categories.first().unwrap().id;
13 let retrieved: Category = client.retrieve(random_id).await?;
14 info!("Retrieved category name: {}", retrieved.name);
15 let create = Category::create("Test Category")
16 .parent(retrieved.id)
17 .description("Test description")
18 .display(DisplayOption::Products)
19 .image("https://woocommerce.github.io/woocommerce-rest-api-docs/images/logo-95f5c1ab.png");
20 let batch_create = create.clone();
21 let created: Category = client.create(create).await?;
22 info!("Category with id: {} created", created.id);
23 let update = Category::update().description("Some description");
24 let updated: Category = client.update(created.id, update).await?;
25 info!("New description is {}", updated.description);
26 let deleted: Category = client.delete(updated.id).await?;
27 info!("Category {} deleted", deleted.name);
28 let batch_created: Vec<Category> = client.batch_create(vec![batch_create]).await?;
29 info!("Batch created {} categories", batch_created.len());
30 let batch_update = Category::update()
31 .id(batch_created.first().unwrap().id)
32 .description("Some description");
33 let batch_updated: Vec<Category> = client.batch_update(vec![batch_update]).await?;
34 let id = batch_updated.first().unwrap().id;
35 info!("Batch updated categories contains category with id: {id}");
36 let batch_deleted: Vec<Category> = client.batch_delete(vec![id]).await?;
37 info!("Deleted {} categories", batch_deleted.len());
38 Ok(())
39}
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Category
impl<'de> Deserialize<'de> for Category
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Category
impl RefUnwindSafe for Category
impl Send for Category
impl Sync for Category
impl Unpin for Category
impl UnwindSafe for Category
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more