mastodon_async_entities/
visibility.rs1use serde::Deserialize;
2use serde::Serialize;
3
4#[derive(Clone, Copy, Debug, Deserialize, Serialize, PartialEq, Eq)]
6#[serde(rename_all = "lowercase")]
7pub enum Visibility {
8 Direct,
10 Private,
12 Unlisted,
14 Public,
16}
17
18impl Default for Visibility {
19 fn default() -> Self {
20 Visibility::Public
21 }
22}
23
24impl std::str::FromStr for Visibility {
25 type Err = crate::error::Error;
26
27 fn from_str(s: &str) -> Result<Self, Self::Err> {
28 match s.to_ascii_lowercase().as_str() {
29 "direct" => Ok(Visibility::Direct),
30 "private" => Ok(Visibility::Private),
31 "unlisted" => Ok(Visibility::Unlisted),
32 "public" => Ok(Visibility::Public),
33 invalid => Err(crate::error::Error::VisibilityParsingError {
34 invalid: invalid.to_string(),
35 }),
36 }
37 }
38}