impl serde::Serialize for BatchUpdateNotificationsRequest {
#[allow(deprecated)]
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
use serde::ser::SerializeStruct;
let mut len = 0;
if !self.requests.is_empty() {
len += 1;
}
let mut struct_ser = serializer.serialize_struct("sift.notifications.v1.BatchUpdateNotificationsRequest", len)?;
if !self.requests.is_empty() {
struct_ser.serialize_field("requests", &self.requests)?;
}
struct_ser.end()
}
}
impl<'de> serde::Deserialize<'de> for BatchUpdateNotificationsRequest {
#[allow(deprecated)]
fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
const FIELDS: &[&str] = &[
"requests",
];
#[allow(clippy::enum_variant_names)]
enum GeneratedField {
Requests,
}
impl<'de> serde::Deserialize<'de> for GeneratedField {
fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
where
D: serde::Deserializer<'de>,
{
struct GeneratedVisitor;
impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
type Value = GeneratedField;
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(formatter, "expected one of: {:?}", &FIELDS)
}
#[allow(unused_variables)]
fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
where
E: serde::de::Error,
{
match value {
"requests" => Ok(GeneratedField::Requests),
_ => Err(serde::de::Error::unknown_field(value, FIELDS)),
}
}
}
deserializer.deserialize_identifier(GeneratedVisitor)
}
}
struct GeneratedVisitor;
impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
type Value = BatchUpdateNotificationsRequest;
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
formatter.write_str("struct sift.notifications.v1.BatchUpdateNotificationsRequest")
}
fn visit_map<V>(self, mut map_: V) -> std::result::Result<BatchUpdateNotificationsRequest, V::Error>
where
V: serde::de::MapAccess<'de>,
{
let mut requests__ = None;
while let Some(k) = map_.next_key()? {
match k {
GeneratedField::Requests => {
if requests__.is_some() {
return Err(serde::de::Error::duplicate_field("requests"));
}
requests__ = Some(map_.next_value()?);
}
}
}
Ok(BatchUpdateNotificationsRequest {
requests: requests__.unwrap_or_default(),
})
}
}
deserializer.deserialize_struct("sift.notifications.v1.BatchUpdateNotificationsRequest", FIELDS, GeneratedVisitor)
}
}
impl serde::Serialize for BatchUpdateNotificationsResponse {
#[allow(deprecated)]
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
use serde::ser::SerializeStruct;
let mut len = 0;
if !self.notifications.is_empty() {
len += 1;
}
let mut struct_ser = serializer.serialize_struct("sift.notifications.v1.BatchUpdateNotificationsResponse", len)?;
if !self.notifications.is_empty() {
struct_ser.serialize_field("notifications", &self.notifications)?;
}
struct_ser.end()
}
}
impl<'de> serde::Deserialize<'de> for BatchUpdateNotificationsResponse {
#[allow(deprecated)]
fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
const FIELDS: &[&str] = &[
"notifications",
];
#[allow(clippy::enum_variant_names)]
enum GeneratedField {
Notifications,
}
impl<'de> serde::Deserialize<'de> for GeneratedField {
fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
where
D: serde::Deserializer<'de>,
{
struct GeneratedVisitor;
impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
type Value = GeneratedField;
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(formatter, "expected one of: {:?}", &FIELDS)
}
#[allow(unused_variables)]
fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
where
E: serde::de::Error,
{
match value {
"notifications" => Ok(GeneratedField::Notifications),
_ => Err(serde::de::Error::unknown_field(value, FIELDS)),
}
}
}
deserializer.deserialize_identifier(GeneratedVisitor)
}
}
struct GeneratedVisitor;
impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
type Value = BatchUpdateNotificationsResponse;
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
formatter.write_str("struct sift.notifications.v1.BatchUpdateNotificationsResponse")
}
fn visit_map<V>(self, mut map_: V) -> std::result::Result<BatchUpdateNotificationsResponse, V::Error>
where
V: serde::de::MapAccess<'de>,
{
let mut notifications__ = None;
while let Some(k) = map_.next_key()? {
match k {
GeneratedField::Notifications => {
if notifications__.is_some() {
return Err(serde::de::Error::duplicate_field("notifications"));
}
notifications__ = Some(map_.next_value()?);
}
}
}
Ok(BatchUpdateNotificationsResponse {
notifications: notifications__.unwrap_or_default(),
})
}
}
deserializer.deserialize_struct("sift.notifications.v1.BatchUpdateNotificationsResponse", FIELDS, GeneratedVisitor)
}
}
impl serde::Serialize for ListNotificationsRequest {
#[allow(deprecated)]
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
use serde::ser::SerializeStruct;
let mut len = 0;
if self.page_size != 0 {
len += 1;
}
if !self.page_token.is_empty() {
len += 1;
}
if !self.filter.is_empty() {
len += 1;
}
let mut struct_ser = serializer.serialize_struct("sift.notifications.v1.ListNotificationsRequest", len)?;
if self.page_size != 0 {
struct_ser.serialize_field("pageSize", &self.page_size)?;
}
if !self.page_token.is_empty() {
struct_ser.serialize_field("pageToken", &self.page_token)?;
}
if !self.filter.is_empty() {
struct_ser.serialize_field("filter", &self.filter)?;
}
struct_ser.end()
}
}
impl<'de> serde::Deserialize<'de> for ListNotificationsRequest {
#[allow(deprecated)]
fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
const FIELDS: &[&str] = &[
"page_size",
"pageSize",
"page_token",
"pageToken",
"filter",
];
#[allow(clippy::enum_variant_names)]
enum GeneratedField {
PageSize,
PageToken,
Filter,
}
impl<'de> serde::Deserialize<'de> for GeneratedField {
fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
where
D: serde::Deserializer<'de>,
{
struct GeneratedVisitor;
impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
type Value = GeneratedField;
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(formatter, "expected one of: {:?}", &FIELDS)
}
#[allow(unused_variables)]
fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
where
E: serde::de::Error,
{
match value {
"pageSize" | "page_size" => Ok(GeneratedField::PageSize),
"pageToken" | "page_token" => Ok(GeneratedField::PageToken),
"filter" => Ok(GeneratedField::Filter),
_ => Err(serde::de::Error::unknown_field(value, FIELDS)),
}
}
}
deserializer.deserialize_identifier(GeneratedVisitor)
}
}
struct GeneratedVisitor;
impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
type Value = ListNotificationsRequest;
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
formatter.write_str("struct sift.notifications.v1.ListNotificationsRequest")
}
fn visit_map<V>(self, mut map_: V) -> std::result::Result<ListNotificationsRequest, V::Error>
where
V: serde::de::MapAccess<'de>,
{
let mut page_size__ = None;
let mut page_token__ = None;
let mut filter__ = None;
while let Some(k) = map_.next_key()? {
match k {
GeneratedField::PageSize => {
if page_size__.is_some() {
return Err(serde::de::Error::duplicate_field("pageSize"));
}
page_size__ =
Some(map_.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0)
;
}
GeneratedField::PageToken => {
if page_token__.is_some() {
return Err(serde::de::Error::duplicate_field("pageToken"));
}
page_token__ = Some(map_.next_value()?);
}
GeneratedField::Filter => {
if filter__.is_some() {
return Err(serde::de::Error::duplicate_field("filter"));
}
filter__ = Some(map_.next_value()?);
}
}
}
Ok(ListNotificationsRequest {
page_size: page_size__.unwrap_or_default(),
page_token: page_token__.unwrap_or_default(),
filter: filter__.unwrap_or_default(),
})
}
}
deserializer.deserialize_struct("sift.notifications.v1.ListNotificationsRequest", FIELDS, GeneratedVisitor)
}
}
impl serde::Serialize for ListNotificationsResponse {
#[allow(deprecated)]
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
use serde::ser::SerializeStruct;
let mut len = 0;
if !self.notifications.is_empty() {
len += 1;
}
if !self.next_page_token.is_empty() {
len += 1;
}
let mut struct_ser = serializer.serialize_struct("sift.notifications.v1.ListNotificationsResponse", len)?;
if !self.notifications.is_empty() {
struct_ser.serialize_field("notifications", &self.notifications)?;
}
if !self.next_page_token.is_empty() {
struct_ser.serialize_field("nextPageToken", &self.next_page_token)?;
}
struct_ser.end()
}
}
impl<'de> serde::Deserialize<'de> for ListNotificationsResponse {
#[allow(deprecated)]
fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
const FIELDS: &[&str] = &[
"notifications",
"next_page_token",
"nextPageToken",
];
#[allow(clippy::enum_variant_names)]
enum GeneratedField {
Notifications,
NextPageToken,
}
impl<'de> serde::Deserialize<'de> for GeneratedField {
fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
where
D: serde::Deserializer<'de>,
{
struct GeneratedVisitor;
impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
type Value = GeneratedField;
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(formatter, "expected one of: {:?}", &FIELDS)
}
#[allow(unused_variables)]
fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
where
E: serde::de::Error,
{
match value {
"notifications" => Ok(GeneratedField::Notifications),
"nextPageToken" | "next_page_token" => Ok(GeneratedField::NextPageToken),
_ => Err(serde::de::Error::unknown_field(value, FIELDS)),
}
}
}
deserializer.deserialize_identifier(GeneratedVisitor)
}
}
struct GeneratedVisitor;
impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
type Value = ListNotificationsResponse;
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
formatter.write_str("struct sift.notifications.v1.ListNotificationsResponse")
}
fn visit_map<V>(self, mut map_: V) -> std::result::Result<ListNotificationsResponse, V::Error>
where
V: serde::de::MapAccess<'de>,
{
let mut notifications__ = None;
let mut next_page_token__ = None;
while let Some(k) = map_.next_key()? {
match k {
GeneratedField::Notifications => {
if notifications__.is_some() {
return Err(serde::de::Error::duplicate_field("notifications"));
}
notifications__ = Some(map_.next_value()?);
}
GeneratedField::NextPageToken => {
if next_page_token__.is_some() {
return Err(serde::de::Error::duplicate_field("nextPageToken"));
}
next_page_token__ = Some(map_.next_value()?);
}
}
}
Ok(ListNotificationsResponse {
notifications: notifications__.unwrap_or_default(),
next_page_token: next_page_token__.unwrap_or_default(),
})
}
}
deserializer.deserialize_struct("sift.notifications.v1.ListNotificationsResponse", FIELDS, GeneratedVisitor)
}
}
impl serde::Serialize for Notification {
#[allow(deprecated)]
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
use serde::ser::SerializeStruct;
let mut len = 0;
if !self.notification_id.is_empty() {
len += 1;
}
if self.created_date.is_some() {
len += 1;
}
if self.modified_date.is_some() {
len += 1;
}
if !self.created_by_user_id.is_empty() {
len += 1;
}
if !self.modified_by_user_id.is_empty() {
len += 1;
}
if !self.organization_id.is_empty() {
len += 1;
}
if !self.recipient_user_id.is_empty() {
len += 1;
}
if self.is_read {
len += 1;
}
if !self.full_link.is_empty() {
len += 1;
}
if self.notification_type != 0 {
len += 1;
}
if !self.contents.is_empty() {
len += 1;
}
if !self.entity_id.is_empty() {
len += 1;
}
let mut struct_ser = serializer.serialize_struct("sift.notifications.v1.Notification", len)?;
if !self.notification_id.is_empty() {
struct_ser.serialize_field("notificationId", &self.notification_id)?;
}
if let Some(v) = self.created_date.as_ref() {
struct_ser.serialize_field("createdDate", v)?;
}
if let Some(v) = self.modified_date.as_ref() {
struct_ser.serialize_field("modifiedDate", v)?;
}
if !self.created_by_user_id.is_empty() {
struct_ser.serialize_field("createdByUserId", &self.created_by_user_id)?;
}
if !self.modified_by_user_id.is_empty() {
struct_ser.serialize_field("modifiedByUserId", &self.modified_by_user_id)?;
}
if !self.organization_id.is_empty() {
struct_ser.serialize_field("organizationId", &self.organization_id)?;
}
if !self.recipient_user_id.is_empty() {
struct_ser.serialize_field("recipientUserId", &self.recipient_user_id)?;
}
if self.is_read {
struct_ser.serialize_field("isRead", &self.is_read)?;
}
if !self.full_link.is_empty() {
struct_ser.serialize_field("fullLink", &self.full_link)?;
}
if self.notification_type != 0 {
let v = NotificationKind::try_from(self.notification_type)
.map_err(|_| serde::ser::Error::custom(format!("Invalid variant {}", self.notification_type)))?;
struct_ser.serialize_field("notificationType", &v)?;
}
if !self.contents.is_empty() {
struct_ser.serialize_field("contents", &self.contents)?;
}
if !self.entity_id.is_empty() {
struct_ser.serialize_field("entityId", &self.entity_id)?;
}
struct_ser.end()
}
}
impl<'de> serde::Deserialize<'de> for Notification {
#[allow(deprecated)]
fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
const FIELDS: &[&str] = &[
"notification_id",
"notificationId",
"created_date",
"createdDate",
"modified_date",
"modifiedDate",
"created_by_user_id",
"createdByUserId",
"modified_by_user_id",
"modifiedByUserId",
"organization_id",
"organizationId",
"recipient_user_id",
"recipientUserId",
"is_read",
"isRead",
"full_link",
"fullLink",
"notification_type",
"notificationType",
"contents",
"entity_id",
"entityId",
];
#[allow(clippy::enum_variant_names)]
enum GeneratedField {
NotificationId,
CreatedDate,
ModifiedDate,
CreatedByUserId,
ModifiedByUserId,
OrganizationId,
RecipientUserId,
IsRead,
FullLink,
NotificationType,
Contents,
EntityId,
}
impl<'de> serde::Deserialize<'de> for GeneratedField {
fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
where
D: serde::Deserializer<'de>,
{
struct GeneratedVisitor;
impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
type Value = GeneratedField;
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(formatter, "expected one of: {:?}", &FIELDS)
}
#[allow(unused_variables)]
fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
where
E: serde::de::Error,
{
match value {
"notificationId" | "notification_id" => Ok(GeneratedField::NotificationId),
"createdDate" | "created_date" => Ok(GeneratedField::CreatedDate),
"modifiedDate" | "modified_date" => Ok(GeneratedField::ModifiedDate),
"createdByUserId" | "created_by_user_id" => Ok(GeneratedField::CreatedByUserId),
"modifiedByUserId" | "modified_by_user_id" => Ok(GeneratedField::ModifiedByUserId),
"organizationId" | "organization_id" => Ok(GeneratedField::OrganizationId),
"recipientUserId" | "recipient_user_id" => Ok(GeneratedField::RecipientUserId),
"isRead" | "is_read" => Ok(GeneratedField::IsRead),
"fullLink" | "full_link" => Ok(GeneratedField::FullLink),
"notificationType" | "notification_type" => Ok(GeneratedField::NotificationType),
"contents" => Ok(GeneratedField::Contents),
"entityId" | "entity_id" => Ok(GeneratedField::EntityId),
_ => Err(serde::de::Error::unknown_field(value, FIELDS)),
}
}
}
deserializer.deserialize_identifier(GeneratedVisitor)
}
}
struct GeneratedVisitor;
impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
type Value = Notification;
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
formatter.write_str("struct sift.notifications.v1.Notification")
}
fn visit_map<V>(self, mut map_: V) -> std::result::Result<Notification, V::Error>
where
V: serde::de::MapAccess<'de>,
{
let mut notification_id__ = None;
let mut created_date__ = None;
let mut modified_date__ = None;
let mut created_by_user_id__ = None;
let mut modified_by_user_id__ = None;
let mut organization_id__ = None;
let mut recipient_user_id__ = None;
let mut is_read__ = None;
let mut full_link__ = None;
let mut notification_type__ = None;
let mut contents__ = None;
let mut entity_id__ = None;
while let Some(k) = map_.next_key()? {
match k {
GeneratedField::NotificationId => {
if notification_id__.is_some() {
return Err(serde::de::Error::duplicate_field("notificationId"));
}
notification_id__ = Some(map_.next_value()?);
}
GeneratedField::CreatedDate => {
if created_date__.is_some() {
return Err(serde::de::Error::duplicate_field("createdDate"));
}
created_date__ = map_.next_value()?;
}
GeneratedField::ModifiedDate => {
if modified_date__.is_some() {
return Err(serde::de::Error::duplicate_field("modifiedDate"));
}
modified_date__ = map_.next_value()?;
}
GeneratedField::CreatedByUserId => {
if created_by_user_id__.is_some() {
return Err(serde::de::Error::duplicate_field("createdByUserId"));
}
created_by_user_id__ = Some(map_.next_value()?);
}
GeneratedField::ModifiedByUserId => {
if modified_by_user_id__.is_some() {
return Err(serde::de::Error::duplicate_field("modifiedByUserId"));
}
modified_by_user_id__ = Some(map_.next_value()?);
}
GeneratedField::OrganizationId => {
if organization_id__.is_some() {
return Err(serde::de::Error::duplicate_field("organizationId"));
}
organization_id__ = Some(map_.next_value()?);
}
GeneratedField::RecipientUserId => {
if recipient_user_id__.is_some() {
return Err(serde::de::Error::duplicate_field("recipientUserId"));
}
recipient_user_id__ = Some(map_.next_value()?);
}
GeneratedField::IsRead => {
if is_read__.is_some() {
return Err(serde::de::Error::duplicate_field("isRead"));
}
is_read__ = Some(map_.next_value()?);
}
GeneratedField::FullLink => {
if full_link__.is_some() {
return Err(serde::de::Error::duplicate_field("fullLink"));
}
full_link__ = Some(map_.next_value()?);
}
GeneratedField::NotificationType => {
if notification_type__.is_some() {
return Err(serde::de::Error::duplicate_field("notificationType"));
}
notification_type__ = Some(map_.next_value::<NotificationKind>()? as i32);
}
GeneratedField::Contents => {
if contents__.is_some() {
return Err(serde::de::Error::duplicate_field("contents"));
}
contents__ = Some(map_.next_value()?);
}
GeneratedField::EntityId => {
if entity_id__.is_some() {
return Err(serde::de::Error::duplicate_field("entityId"));
}
entity_id__ = Some(map_.next_value()?);
}
}
}
Ok(Notification {
notification_id: notification_id__.unwrap_or_default(),
created_date: created_date__,
modified_date: modified_date__,
created_by_user_id: created_by_user_id__.unwrap_or_default(),
modified_by_user_id: modified_by_user_id__.unwrap_or_default(),
organization_id: organization_id__.unwrap_or_default(),
recipient_user_id: recipient_user_id__.unwrap_or_default(),
is_read: is_read__.unwrap_or_default(),
full_link: full_link__.unwrap_or_default(),
notification_type: notification_type__.unwrap_or_default(),
contents: contents__.unwrap_or_default(),
entity_id: entity_id__.unwrap_or_default(),
})
}
}
deserializer.deserialize_struct("sift.notifications.v1.Notification", FIELDS, GeneratedVisitor)
}
}
impl serde::Serialize for NotificationKind {
#[allow(deprecated)]
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
let variant = match self {
Self::Unspecified => "NOTIFICATION_KIND_UNSPECIFIED",
Self::Text => "NOTIFICATION_KIND_TEXT",
Self::AnnotationAssigned => "NOTIFICATION_KIND_ANNOTATION_ASSIGNED",
Self::MentionedInAnnotationComment => "NOTIFICATION_KIND_MENTIONED_IN_ANNOTATION_COMMENT",
Self::ConditionTriggered => "NOTIFICATION_KIND_CONDITION_TRIGGERED",
Self::AnnotationStateChanged => "NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED",
Self::ReportReady => "NOTIFICATION_KIND_REPORT_READY",
Self::DataExportReady => "NOTIFICATION_KIND_DATA_EXPORT_READY",
};
serializer.serialize_str(variant)
}
}
impl<'de> serde::Deserialize<'de> for NotificationKind {
#[allow(deprecated)]
fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
const FIELDS: &[&str] = &[
"NOTIFICATION_KIND_UNSPECIFIED",
"NOTIFICATION_KIND_TEXT",
"NOTIFICATION_KIND_ANNOTATION_ASSIGNED",
"NOTIFICATION_KIND_MENTIONED_IN_ANNOTATION_COMMENT",
"NOTIFICATION_KIND_CONDITION_TRIGGERED",
"NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED",
"NOTIFICATION_KIND_REPORT_READY",
"NOTIFICATION_KIND_DATA_EXPORT_READY",
];
struct GeneratedVisitor;
impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
type Value = NotificationKind;
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(formatter, "expected one of: {:?}", &FIELDS)
}
fn visit_i64<E>(self, v: i64) -> std::result::Result<Self::Value, E>
where
E: serde::de::Error,
{
i32::try_from(v)
.ok()
.and_then(|x| x.try_into().ok())
.ok_or_else(|| {
serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self)
})
}
fn visit_u64<E>(self, v: u64) -> std::result::Result<Self::Value, E>
where
E: serde::de::Error,
{
i32::try_from(v)
.ok()
.and_then(|x| x.try_into().ok())
.ok_or_else(|| {
serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self)
})
}
fn visit_str<E>(self, value: &str) -> std::result::Result<Self::Value, E>
where
E: serde::de::Error,
{
match value {
"NOTIFICATION_KIND_UNSPECIFIED" => Ok(NotificationKind::Unspecified),
"NOTIFICATION_KIND_TEXT" => Ok(NotificationKind::Text),
"NOTIFICATION_KIND_ANNOTATION_ASSIGNED" => Ok(NotificationKind::AnnotationAssigned),
"NOTIFICATION_KIND_MENTIONED_IN_ANNOTATION_COMMENT" => Ok(NotificationKind::MentionedInAnnotationComment),
"NOTIFICATION_KIND_CONDITION_TRIGGERED" => Ok(NotificationKind::ConditionTriggered),
"NOTIFICATION_KIND_ANNOTATION_STATE_CHANGED" => Ok(NotificationKind::AnnotationStateChanged),
"NOTIFICATION_KIND_REPORT_READY" => Ok(NotificationKind::ReportReady),
"NOTIFICATION_KIND_DATA_EXPORT_READY" => Ok(NotificationKind::DataExportReady),
_ => Err(serde::de::Error::unknown_variant(value, FIELDS)),
}
}
}
deserializer.deserialize_any(GeneratedVisitor)
}
}
impl serde::Serialize for UpdateNotificationRequest {
#[allow(deprecated)]
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
use serde::ser::SerializeStruct;
let mut len = 0;
if self.notification.is_some() {
len += 1;
}
if self.update_mask.is_some() {
len += 1;
}
let mut struct_ser = serializer.serialize_struct("sift.notifications.v1.UpdateNotificationRequest", len)?;
if let Some(v) = self.notification.as_ref() {
struct_ser.serialize_field("notification", v)?;
}
if let Some(v) = self.update_mask.as_ref() {
struct_ser.serialize_field("updateMask", v)?;
}
struct_ser.end()
}
}
impl<'de> serde::Deserialize<'de> for UpdateNotificationRequest {
#[allow(deprecated)]
fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
const FIELDS: &[&str] = &[
"notification",
"update_mask",
"updateMask",
];
#[allow(clippy::enum_variant_names)]
enum GeneratedField {
Notification,
UpdateMask,
}
impl<'de> serde::Deserialize<'de> for GeneratedField {
fn deserialize<D>(deserializer: D) -> std::result::Result<GeneratedField, D::Error>
where
D: serde::Deserializer<'de>,
{
struct GeneratedVisitor;
impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
type Value = GeneratedField;
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(formatter, "expected one of: {:?}", &FIELDS)
}
#[allow(unused_variables)]
fn visit_str<E>(self, value: &str) -> std::result::Result<GeneratedField, E>
where
E: serde::de::Error,
{
match value {
"notification" => Ok(GeneratedField::Notification),
"updateMask" | "update_mask" => Ok(GeneratedField::UpdateMask),
_ => Err(serde::de::Error::unknown_field(value, FIELDS)),
}
}
}
deserializer.deserialize_identifier(GeneratedVisitor)
}
}
struct GeneratedVisitor;
impl<'de> serde::de::Visitor<'de> for GeneratedVisitor {
type Value = UpdateNotificationRequest;
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
formatter.write_str("struct sift.notifications.v1.UpdateNotificationRequest")
}
fn visit_map<V>(self, mut map_: V) -> std::result::Result<UpdateNotificationRequest, V::Error>
where
V: serde::de::MapAccess<'de>,
{
let mut notification__ = None;
let mut update_mask__ = None;
while let Some(k) = map_.next_key()? {
match k {
GeneratedField::Notification => {
if notification__.is_some() {
return Err(serde::de::Error::duplicate_field("notification"));
}
notification__ = map_.next_value()?;
}
GeneratedField::UpdateMask => {
if update_mask__.is_some() {
return Err(serde::de::Error::duplicate_field("updateMask"));
}
update_mask__ = map_.next_value()?;
}
}
}
Ok(UpdateNotificationRequest {
notification: notification__,
update_mask: update_mask__,
})
}
}
deserializer.deserialize_struct("sift.notifications.v1.UpdateNotificationRequest", FIELDS, GeneratedVisitor)
}
}