Struct Category

Source
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: i32

Menu order, used to custom sort the resource.

§count: i32

Number of published products for the resource. READ-ONLY

Implementations§

Source§

impl Category

Source

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}
Source

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 Clone for Category

Source§

fn clone(&self) -> Category

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Category

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Category

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for Category

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,