mirror of
https://codeberg.org/demostf/parser.git
synced 2026-06-04 02:24:12 +02:00
more user messages
This commit is contained in:
parent
c7d83f6be0
commit
5d6b22ec57
3 changed files with 104 additions and 8 deletions
|
|
@ -1,13 +1,12 @@
|
|||
pub mod userinfo;
|
||||
|
||||
use bitbuffer::{BitRead, BitReadStream, BitWrite, BitWriteStream, Endianness};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
||||
use std::fmt::{Debug, Display, Formatter};
|
||||
|
||||
pub use userinfo::UserInfo;
|
||||
|
||||
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
|
||||
#[derive(Eq, PartialEq, Serialize, Deserialize, Clone)]
|
||||
#[derive(Eq, PartialEq, Clone)]
|
||||
pub enum MaybeUtf8String {
|
||||
Valid(String),
|
||||
Invalid(Vec<u8>),
|
||||
|
|
@ -87,3 +86,32 @@ impl Into<String> for MaybeUtf8String {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Serialize for MaybeUtf8String {
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: Serializer,
|
||||
{
|
||||
self.as_ref().serialize(serializer)
|
||||
}
|
||||
}
|
||||
|
||||
impl<'de> Deserialize<'de> for MaybeUtf8String {
|
||||
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
String::deserialize(deserializer).map(MaybeUtf8String::Valid)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "schema")]
|
||||
impl schemars::JsonSchema for MaybeUtf8String {
|
||||
fn schema_name() -> String {
|
||||
String::schema_name()
|
||||
}
|
||||
|
||||
fn json_schema(gen: &mut schemars::gen::SchemaGenerator) -> schemars::schema::Schema {
|
||||
String::json_schema(gen)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue