Skip to content

Commit

Permalink
box large enum variants (without tls serde)
Browse files Browse the repository at this point in the history
  • Loading branch information
boxdot committed Dec 3, 2024
1 parent 8270dcb commit c553956
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 21 deletions.
9 changes: 7 additions & 2 deletions applogic/src/api/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -203,12 +203,11 @@ impl From<ConversationMessage> for UiConversationMessage {
}
}

#[expect(clippy::large_enum_variant)]
#[derive(PartialEq, Debug, Clone)]
pub enum UiMessage {
ContentFlight(Vec<UiContentMessage>),
Display(UiEventMessage),
Unsent(UiMimiContent),
Unsent(Box<UiMimiContent>),
}

impl From<Message> for UiMessage {
Expand Down Expand Up @@ -298,6 +297,12 @@ impl From<ContentMessage> for UiContentMessage {
}
}

impl From<Box<ContentMessage>> for UiContentMessage {
fn from(content_message: Box<ContentMessage>) -> Self {
Self::from(*content_message)
}
}

#[derive(PartialEq, Debug, Clone)]
pub enum UiEventMessage {
System(UiSystemMessage),
Expand Down
12 changes: 7 additions & 5 deletions coreclient/src/conversations/messages/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,11 @@ impl TimestampedMessage {
sender_name: QualifiedUserName,
) -> Result<Self, tls_codec::Error> {
let content = MimiContent::tls_deserialize_exact_bytes(&application_message.into_bytes())?;
let message = Message::Content(ContentMessage::new(sender_name.to_string(), true, content));
let message = Message::Content(Box::new(ContentMessage::new(
sender_name.to_string(),
true,
content,
)));
Ok(Self {
timestamp: ds_timestamp,
message,
Expand Down Expand Up @@ -126,7 +130,7 @@ impl ConversationMessage {
conversation_id: ConversationId,
content: MimiContent,
) -> ConversationMessage {
let message = Message::Content(ContentMessage::new(sender, false, content));
let message = Message::Content(Box::new(ContentMessage::new(sender, false, content)));
let timestamped_message =
TimestampedMessage::from_message_and_timestamp(message, TimeStamp::now());
ConversationMessage {
Expand Down Expand Up @@ -177,10 +181,9 @@ impl ConversationMessage {

// WARNING: If this type is changed, a new `VersionedMessage` variant must be
// introduced and the storage logic changed accordingly.
#[expect(clippy::large_enum_variant)]
#[derive(PartialEq, Debug, Clone, Serialize, Deserialize)]
pub enum Message {
Content(ContentMessage),
Content(Box<ContentMessage>),
Event(EventMessage),
}

Expand Down Expand Up @@ -296,7 +299,6 @@ impl ErrorMessage {
}
}

#[expect(clippy::large_enum_variant)]
#[derive(Debug, Clone)]
pub enum NotificationType {
ConversationChange(ConversationId), // The id of the changed conversation.
Expand Down
14 changes: 7 additions & 7 deletions coreclient/src/conversations/messages/persistence.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ impl Message {
sent,
content,
};
Ok(Message::Content(content_message))
Ok(Message::Content(Box::new(content_message)))
}
},
}
Expand Down Expand Up @@ -162,12 +162,12 @@ impl ConversationMessage {
let mut statement = connection.prepare(
"SELECT *
FROM (
SELECT
message_id,
conversation_id,
timestamp,
sender,
content,
SELECT
message_id,
conversation_id,
timestamp,
sender,
content,
sent
FROM conversation_messages
WHERE conversation_id = ?
Expand Down
8 changes: 4 additions & 4 deletions test_harness/src/utils/setup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -538,11 +538,11 @@ impl TestBackend {

assert_eq!(
message.message(),
&Message::Content(ContentMessage::new(
&Message::Content(Box::new(ContentMessage::new(
test_sender.user.user_name().to_string(),
true,
orig_message.clone()
))
)))
);

for recipient_name in &recipient_names {
Expand All @@ -558,11 +558,11 @@ impl TestBackend {

assert_eq!(
messages.last().unwrap().message(),
&Message::Content(ContentMessage::new(
&Message::Content(Box::new(ContentMessage::new(
sender_user_name.to_string(),
true,
orig_message.clone()
))
)))
);
}
message.id()
Expand Down
5 changes: 2 additions & 3 deletions types/src/messages/client_ds.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ impl QsQueueMessagePayload {
}
QsQueueMessageType::MlsMessage => {
let message = MlsMessageIn::tls_deserialize_exact_bytes(self.payload.as_slice())?;
ExtractedQsQueueMessagePayload::MlsMessage(message)
ExtractedQsQueueMessagePayload::MlsMessage(Box::new(message))
}
};
Ok(ExtractedQsQueueMessage {
Expand All @@ -109,11 +109,10 @@ pub struct ExtractedQsQueueMessage {
pub payload: ExtractedQsQueueMessagePayload,
}

#[expect(clippy::large_enum_variant)]
#[derive(Debug)]
pub enum ExtractedQsQueueMessagePayload {
WelcomeBundle(WelcomeBundle),
MlsMessage(MlsMessageIn),
MlsMessage(Box<MlsMessageIn>),
}

impl TryFrom<WelcomeBundle> for QsQueueMessagePayload {
Expand Down

0 comments on commit c553956

Please sign in to comment.