misskey-api 0.2.0

API bindings of Misskey, including requests/responses of endpoints and messages on channels
Documentation
use crate::model::{id::Id, user::User};

use chrono::{DateTime, Utc};
use mime::Mime;
use serde::{Deserialize, Serialize};
use url::Url;

#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct DriveFile {
    pub id: Id<DriveFile>,
    pub created_at: DateTime<Utc>,
    pub name: String,
    #[serde(rename = "type", with = "crate::serde::string")]
    pub type_: Mime,
    pub md5: String,
    pub size: u64,
    pub url: Option<Url>,
    pub folder_id: Option<Id<DriveFolder>>,
    #[cfg(feature = "12-48-0")]
    #[cfg_attr(docsrs, doc(cfg(feature = "12-48-0")))]
    pub comment: Option<String>,
    #[cfg(feature = "12-48-0")]
    #[cfg_attr(docsrs, doc(cfg(feature = "12-48-0")))]
    pub user_id: Option<Id<User>>,
    pub user: Option<User>,
    #[serde(default)]
    pub folder: Option<DriveFolder>,
    pub is_sensitive: bool,
}

impl_entity!(DriveFile);

#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct DriveFolder {
    pub id: Id<DriveFolder>,
    pub created_at: DateTime<Utc>,
    pub name: String,
    #[serde(default)]
    pub folders_count: Option<u64>,
    #[serde(default)]
    pub files_count: Option<u64>,
    pub parent_id: Option<Id<DriveFolder>>,
    #[serde(default)]
    pub parent: Option<Box<DriveFolder>>,
}

impl_entity!(DriveFolder);