asyncapi 0.2.0

This crate aims to provide data structures that represent the AsyncAPI specification easily deserializable with serde.
Documentation
use crate::*;
use indexmap::IndexMap;
use serde::{Deserialize, Serialize};

/// Allows adding meta data to a single tag.
///
/// # Examples
/// ```json
/// {
///     "name": "user",
///     "description": "User-related messages"
/// }
/// ```
///
/// ```yaml
/// name: user
/// description: User-related messages
/// ```
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq)]
pub struct Tag {
    /// **Required**. The name of the tag.
    pub name: String,
    /// A short description of the target documentation.
    /// [CommonMark](https://spec.commonmark.org/) syntax can be used for rich text representation.
    #[serde(skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    /// Additional external documentation for this tag.
    #[serde(rename = "externalDocs", skip_serializing_if = "Option::is_none")]
    pub external_docs: Option<ExternalDocumentation>,
    /// This object can be extended with
    /// [Specification Extensions](https://www.asyncapi.com/docs/specifications/v2.3.0#specificationExtensions).
    #[serde(flatten)]
    pub extensions: IndexMap<String, serde_json::Value>,
}