Update to Rust 1.50

Also run rustfmt, fix new clippy warnings.
This commit is contained in:
link2xt
2021-02-28 18:36:00 +03:00
committed by link2xt
parent 5c2d6c22a0
commit a698a8dd84
11 changed files with 54 additions and 41 deletions

View File

@@ -18,7 +18,7 @@ jobs:
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
profile: minimal profile: minimal
toolchain: 1.49.0 toolchain: 1.50.0
override: true override: true
- run: rustup component add rustfmt - run: rustup component add rustfmt
- uses: actions-rs/cargo@v1 - uses: actions-rs/cargo@v1
@@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@v1 - uses: actions/checkout@v1
- uses: actions-rs/toolchain@v1 - uses: actions-rs/toolchain@v1
with: with:
toolchain: 1.49.0 toolchain: 1.50.0
components: clippy components: clippy
override: true override: true
- uses: actions-rs/clippy-check@v1 - uses: actions-rs/clippy-check@v1
@@ -72,7 +72,7 @@ jobs:
# macOS disabled due to random failures related to caching # macOS disabled due to random failures related to caching
#os: [ubuntu-latest, windows-latest, macOS-latest] #os: [ubuntu-latest, windows-latest, macOS-latest]
os: [ubuntu-latest, windows-latest] os: [ubuntu-latest, windows-latest]
rust: [1.49.0] rust: [1.50.0]
experimental: [false] experimental: [false]
# include: # include:
# - os: ubuntu-latest # - os: ubuntu-latest

View File

@@ -96,7 +96,7 @@
- try harder on backup opening #2148 - try harder on backup opening #2148
- switch to rust 1.49, update toolchains, deps #2150 #2155 #2165 #2107 - switch to rust 1.50, update toolchains, deps #2150 #2155 #2165 #2107 #2262 #2271
- improve python bindings #2113 #2115 #2133 #2214 - improve python bindings #2113 #2115 #2133 #2214

View File

@@ -3,9 +3,9 @@
set -e -x set -e -x
# Install Rust # Install Rust
curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.49.0-x86_64-unknown-linux-gnu -y curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.50.0-x86_64-unknown-linux-gnu -y
export PATH=/root/.cargo/bin:$PATH export PATH=/root/.cargo/bin:$PATH
rustc --version rustc --version
# remove some 300-400 MB that we don't need for automated builds # remove some 300-400 MB that we don't need for automated builds
rm -rf /root/.rustup/toolchains/1.49.0-x86_64-unknown-linux-gnu/share rm -rf /root/.rustup/toolchains/1.50.0-x86_64-unknown-linux-gnu/share

View File

@@ -1 +1 @@
1.49.0 1.50.0

View File

@@ -32,7 +32,9 @@ impl Default for Blocked {
} }
} }
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, FromSql, ToSql)] #[derive(
Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, FromSql, ToSql,
)]
#[repr(u8)] #[repr(u8)]
pub enum ShowEmails { pub enum ShowEmails {
Off = 0, Off = 0,
@@ -46,7 +48,9 @@ impl Default for ShowEmails {
} }
} }
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, FromSql, ToSql)] #[derive(
Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, FromSql, ToSql,
)]
#[repr(u8)] #[repr(u8)]
pub enum MediaQuality { pub enum MediaQuality {
Balanced = 0, Balanced = 0,
@@ -59,7 +63,9 @@ impl Default for MediaQuality {
} }
} }
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, FromSql, ToSql)] #[derive(
Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, FromSql, ToSql,
)]
#[repr(u8)] #[repr(u8)]
pub enum KeyGenType { pub enum KeyGenType {
Default = 0, Default = 0,
@@ -73,7 +79,9 @@ impl Default for KeyGenType {
} }
} }
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, FromSql, ToSql)] #[derive(
Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, FromSql, ToSql,
)]
#[repr(i8)] #[repr(i8)]
pub enum VideochatType { pub enum VideochatType {
Unknown = 0, Unknown = 0,

View File

@@ -420,23 +420,16 @@ test some special html-characters as < > and & but also " and &#x
let t = TestContext::new().await; let t = TestContext::new().await;
let raw = include_bytes!("../test-data/message/apple_cid_jpg.eml"); let raw = include_bytes!("../test-data/message/apple_cid_jpg.eml");
let test = String::from_utf8_lossy(raw); let test = String::from_utf8_lossy(raw);
assert!(test assert!(test.contains("Content-Id: <8AE052EF-BC90-486F-BB78-58D3590308EC@fritz.box>"));
.find("Content-Id: <8AE052EF-BC90-486F-BB78-58D3590308EC@fritz.box>") assert!(test.contains("cid:8AE052EF-BC90-486F-BB78-58D3590308EC@fritz.box"));
.is_some());
assert!(test
.find("cid:8AE052EF-BC90-486F-BB78-58D3590308EC@fritz.box")
.is_some());
assert!(test.find("data:").is_none()); assert!(test.find("data:").is_none());
// parsing converts cid: to data: // parsing converts cid: to data:
let parser = HtmlMsgParser::from_bytes(&t.ctx, raw).await.unwrap(); let parser = HtmlMsgParser::from_bytes(&t.ctx, raw).await.unwrap();
assert!(parser.html.find("<html>").is_some()); assert!(parser.html.contains("<html>"));
assert!(parser.html.find("Content-Id:").is_none()); assert!(!parser.html.contains("Content-Id:"));
assert!(parser assert!(parser.html.contains("data:image/jpeg;base64,/9j/4AAQ"));
.html assert!(!parser.html.contains("cid:"));
.find("data:image/jpeg;base64,/9j/4AAQ")
.is_some());
assert!(parser.html.find("cid:").is_none());
} }
#[async_std::test] #[async_std::test]
@@ -462,10 +455,10 @@ test some special html-characters as &lt; &gt; and &amp; but also &quot; and &#x
assert_ne!(msg.get_from_id(), DC_CONTACT_ID_SELF); assert_ne!(msg.get_from_id(), DC_CONTACT_ID_SELF);
assert_eq!(msg.is_dc_message, MessengerMessage::No); assert_eq!(msg.is_dc_message, MessengerMessage::No);
assert!(!msg.is_forwarded()); assert!(!msg.is_forwarded());
assert!(msg.get_text().unwrap().find("this is plain").is_some()); assert!(msg.get_text().unwrap().contains("this is plain"));
assert!(msg.has_html()); assert!(msg.has_html());
let html = msg.get_id().get_html(&alice).await.unwrap(); let html = msg.get_id().get_html(&alice).await.unwrap();
assert!(html.find("this is <b>html</b>").is_some()); assert!(html.contains("this is <b>html</b>"));
// alice: create chat with bob and forward received html-message there // alice: create chat with bob and forward received html-message there
let chat = alice.create_chat_with_contact("", "bob@example.net").await; let chat = alice.create_chat_with_contact("", "bob@example.net").await;
@@ -476,10 +469,10 @@ test some special html-characters as &lt; &gt; and &amp; but also &quot; and &#x
assert_eq!(msg.get_from_id(), DC_CONTACT_ID_SELF); assert_eq!(msg.get_from_id(), DC_CONTACT_ID_SELF);
assert_eq!(msg.is_dc_message, MessengerMessage::Yes); assert_eq!(msg.is_dc_message, MessengerMessage::Yes);
assert!(msg.is_forwarded()); assert!(msg.is_forwarded());
assert!(msg.get_text().unwrap().find("this is plain").is_some()); assert!(msg.get_text().unwrap().contains("this is plain"));
assert!(msg.has_html()); assert!(msg.has_html());
let html = msg.get_id().get_html(&alice).await.unwrap(); let html = msg.get_id().get_html(&alice).await.unwrap();
assert!(html.find("this is <b>html</b>").is_some()); assert!(html.contains("this is <b>html</b>"));
// bob: check that bob also got the html-part of the forwarded message // bob: check that bob also got the html-part of the forwarded message
let bob = TestContext::new_bob().await; let bob = TestContext::new_bob().await;
@@ -489,10 +482,10 @@ test some special html-characters as &lt; &gt; and &amp; but also &quot; and &#x
assert_ne!(msg.get_from_id(), DC_CONTACT_ID_SELF); assert_ne!(msg.get_from_id(), DC_CONTACT_ID_SELF);
assert_eq!(msg.is_dc_message, MessengerMessage::Yes); assert_eq!(msg.is_dc_message, MessengerMessage::Yes);
assert!(msg.is_forwarded()); assert!(msg.is_forwarded());
assert!(msg.get_text().unwrap().find("this is plain").is_some()); assert!(msg.get_text().unwrap().contains("this is plain"));
assert!(msg.has_html()); assert!(msg.has_html());
let html = msg.get_id().get_html(&bob).await.unwrap(); let html = msg.get_id().get_html(&bob).await.unwrap();
assert!(html.find("this is <b>html</b>").is_some()); assert!(html.contains("this is <b>html</b>"));
} }
#[async_std::test] #[async_std::test]
@@ -529,10 +522,10 @@ test some special html-characters as &lt; &gt; and &amp; but also &quot; and &#x
assert_eq!(msg.is_dc_message, MessengerMessage::Yes); assert_eq!(msg.is_dc_message, MessengerMessage::Yes);
assert!(msg.get_showpadlock()); assert!(msg.get_showpadlock());
assert!(msg.is_forwarded()); assert!(msg.is_forwarded());
assert!(msg.get_text().unwrap().find("this is plain").is_some()); assert!(msg.get_text().unwrap().contains("this is plain"));
assert!(msg.has_html()); assert!(msg.has_html());
let html = msg.get_id().get_html(&alice).await.unwrap(); let html = msg.get_id().get_html(&alice).await.unwrap();
assert!(html.find("this is <b>html</b>").is_some()); assert!(html.contains("this is <b>html</b>"));
} }
#[async_std::test] #[async_std::test]
@@ -554,7 +547,7 @@ test some special html-characters as &lt; &gt; and &amp; but also &quot; and &#x
assert!(!msg.is_forwarded()); assert!(!msg.is_forwarded());
assert!(msg.mime_modified); assert!(msg.mime_modified);
let html = msg.get_id().get_html(&alice).await.unwrap(); let html = msg.get_id().get_html(&alice).await.unwrap();
assert!(html.find("<b>html</b> text").is_some()); assert!(html.contains("<b>html</b> text"));
// let bob receive the message // let bob receive the message
let chat_id = bob.create_chat(&alice).await.id; let chat_id = bob.create_chat(&alice).await.id;
@@ -564,6 +557,6 @@ test some special html-characters as &lt; &gt; and &amp; but also &quot; and &#x
assert!(!msg.is_forwarded()); assert!(!msg.is_forwarded());
assert!(msg.mime_modified); assert!(msg.mime_modified);
let html = msg.get_id().get_html(&bob).await.unwrap(); let html = msg.get_id().get_html(&bob).await.unwrap();
assert!(html.find("<b>html</b> text").is_some()); assert!(html.contains("<b>html</b> text"));
} }
} }

View File

@@ -35,7 +35,9 @@ use crate::{scheduler::InterruptInfo, sql};
const JOB_RETRIES: u32 = 17; const JOB_RETRIES: u32 = 17;
/// Thread IDs /// Thread IDs
#[derive(Debug, Display, Copy, Clone, PartialEq, Eq, FromPrimitive, ToPrimitive, FromSql, ToSql)] #[derive(
Debug, Display, Copy, Clone, PartialEq, Eq, FromPrimitive, ToPrimitive, FromSql, ToSql,
)]
#[repr(i32)] #[repr(i32)]
pub(crate) enum Thread { pub(crate) enum Thread {
Unknown = 0, Unknown = 0,

View File

@@ -22,7 +22,9 @@ pub struct Lot {
} }
#[repr(u8)] #[repr(u8)]
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, ToSql, FromSql)] #[derive(
Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, ToSql, FromSql,
)]
pub enum Meaning { pub enum Meaning {
None = 0, None = 0,
Text1Draft = 1, Text1Draft = 1,
@@ -67,7 +69,9 @@ impl Lot {
} }
#[repr(i32)] #[repr(i32)]
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, ToSql, FromSql)] #[derive(
Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, ToSql, FromSql,
)]
pub enum LotState { pub enum LotState {
// Default // Default
Undefined = 0, Undefined = 0,

View File

@@ -103,7 +103,9 @@ pub(crate) enum MailinglistType {
None, None,
} }
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, ToSql, FromSql)] #[derive(
Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, ToSql, FromSql,
)]
#[repr(i32)] #[repr(i32)]
pub enum SystemMessage { pub enum SystemMessage {
Unknown = 0, Unknown = 0,

View File

@@ -93,8 +93,10 @@ impl<'a> BobStateHandle<'a> {
info!(context, "Handling securejoin message for BobStateHandle"); info!(context, "Handling securejoin message for BobStateHandle");
match self.bobstate.handle_message(context, mime_message).await { match self.bobstate.handle_message(context, mime_message).await {
Ok(Some(stage)) => { Ok(Some(stage)) => {
if matches!(stage, BobHandshakeStage::Completed | BobHandshakeStage::Terminated(_)) if matches!(
{ stage,
BobHandshakeStage::Completed | BobHandshakeStage::Terminated(_)
) {
self.finish_protocol(context).await; self.finish_protocol(context).await;
} }
Some(stage) Some(stage)

View File

@@ -11,7 +11,9 @@ use crate::context::Context;
use crate::dc_tools::{dc_create_id, time}; use crate::dc_tools::{dc_create_id, time};
/// Token namespace /// Token namespace
#[derive(Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, ToSql, FromSql)] #[derive(
Debug, Display, Clone, Copy, PartialEq, Eq, FromPrimitive, ToPrimitive, ToSql, FromSql,
)]
#[repr(i32)] #[repr(i32)]
pub enum Namespace { pub enum Namespace {
Unknown = 0, Unknown = 0,