Update to Rust 1.75
This commit is contained in:
parent
646ba41cf8
commit
3982e0c8fe
@ -146,7 +146,7 @@ impl ExtractedCloze<'_> {
|
|||||||
|
|
||||||
/// If cloze starts with image-occlusion:, return the text following that.
|
/// If cloze starts with image-occlusion:, return the text following that.
|
||||||
fn image_occlusion(&self) -> Option<&str> {
|
fn image_occlusion(&self) -> Option<&str> {
|
||||||
let Some(first_node) = self.nodes.get(0) else {
|
let Some(first_node) = self.nodes.first() else {
|
||||||
return None;
|
return None;
|
||||||
};
|
};
|
||||||
let TextOrCloze::Text(text) = first_node else {
|
let TextOrCloze::Text(text) = first_node else {
|
||||||
|
@ -460,7 +460,7 @@ fn ensure_first_field_is_mapped(
|
|||||||
fn maybe_set_fallback_columns(metadata: &mut CsvMetadata) -> Result<()> {
|
fn maybe_set_fallback_columns(metadata: &mut CsvMetadata) -> Result<()> {
|
||||||
if metadata.column_labels.is_empty() {
|
if metadata.column_labels.is_empty() {
|
||||||
metadata.column_labels =
|
metadata.column_labels =
|
||||||
vec![String::new(); metadata.preview.get(0).map_or(0, |row| row.vals.len())];
|
vec![String::new(); metadata.preview.first().map_or(0, |row| row.vals.len())];
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -483,7 +483,7 @@ impl DuplicateUpdateResult {
|
|||||||
impl NoteContext<'_> {
|
impl NoteContext<'_> {
|
||||||
fn is_guid_dupe(&self) -> bool {
|
fn is_guid_dupe(&self) -> bool {
|
||||||
self.dupes
|
self.dupes
|
||||||
.get(0)
|
.first()
|
||||||
.map_or(false, |d| d.note.guid == self.note.guid)
|
.map_or(false, |d| d.note.guid == self.note.guid)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -570,11 +570,11 @@ impl ForeignNote {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn first_field_is_the_empty_string(&self) -> bool {
|
fn first_field_is_the_empty_string(&self) -> bool {
|
||||||
matches!(self.fields.get(0), Some(Some(s)) if s.is_empty())
|
matches!(self.fields.first(), Some(Some(s)) if s.is_empty())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn first_field_is_unempty(&self) -> bool {
|
fn first_field_is_unempty(&self) -> bool {
|
||||||
matches!(self.fields.get(0), Some(Some(s)) if !s.is_empty())
|
matches!(self.fields.first(), Some(Some(s)) if !s.is_empty())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn normalize_fields(&mut self, normalize_text: bool) {
|
fn normalize_fields(&mut self, normalize_text: bool) {
|
||||||
@ -595,7 +595,7 @@ impl ForeignNote {
|
|||||||
|
|
||||||
fn first_field_stripped(&self) -> Option<Cow<str>> {
|
fn first_field_stripped(&self) -> Option<Cow<str>> {
|
||||||
self.fields
|
self.fields
|
||||||
.get(0)
|
.first()
|
||||||
.and_then(|s| s.as_ref())
|
.and_then(|s| s.as_ref())
|
||||||
.map(|field| strip_html_preserving_media_filenames(field.as_str()))
|
.map(|field| strip_html_preserving_media_filenames(field.as_str()))
|
||||||
}
|
}
|
||||||
|
@ -564,7 +564,7 @@ impl Collection {
|
|||||||
/// notetypes, check if there is a cloze in a non-cloze field or if there's
|
/// notetypes, check if there is a cloze in a non-cloze field or if there's
|
||||||
/// no cloze at all. For other notetypes, just check if there's a cloze.
|
/// no cloze at all. For other notetypes, just check if there's a cloze.
|
||||||
pub fn note_fields_check(&mut self, note: &Note) -> Result<NoteFieldsState> {
|
pub fn note_fields_check(&mut self, note: &Note) -> Result<NoteFieldsState> {
|
||||||
Ok(if let Some(text) = note.fields.get(0) {
|
Ok(if let Some(text) = note.fields.first() {
|
||||||
let field1 = if self.get_config_bool(BoolKey::NormalizeNoteText) {
|
let field1 = if self.get_config_bool(BoolKey::NormalizeNoteText) {
|
||||||
normalize_to_nfc(text)
|
normalize_to_nfc(text)
|
||||||
} else {
|
} else {
|
||||||
|
@ -132,7 +132,7 @@ impl Notetype {
|
|||||||
/// always return the first and only template.
|
/// always return the first and only template.
|
||||||
pub fn get_template(&self, card_ord: u16) -> Result<&CardTemplate> {
|
pub fn get_template(&self, card_ord: u16) -> Result<&CardTemplate> {
|
||||||
let template = if self.config.kind() == NotetypeKind::Cloze {
|
let template = if self.config.kind() == NotetypeKind::Cloze {
|
||||||
self.templates.get(0)
|
self.templates.first()
|
||||||
} else {
|
} else {
|
||||||
self.templates.get(card_ord as usize)
|
self.templates.get(card_ord as usize)
|
||||||
};
|
};
|
||||||
@ -553,7 +553,7 @@ impl Notetype {
|
|||||||
fields: HashMap<String, Option<String>>,
|
fields: HashMap<String, Option<String>>,
|
||||||
parsed: &mut [(Option<ParsedTemplate>, Option<ParsedTemplate>)],
|
parsed: &mut [(Option<ParsedTemplate>, Option<ParsedTemplate>)],
|
||||||
) {
|
) {
|
||||||
let first_remaining_field_name = &self.fields.get(0).unwrap().name;
|
let first_remaining_field_name = &self.fields.first().unwrap().name;
|
||||||
let is_cloze = self.is_cloze();
|
let is_cloze = self.is_cloze();
|
||||||
for (idx, (q_opt, a_opt)) in parsed.iter_mut().enumerate() {
|
for (idx, (q_opt, a_opt)) in parsed.iter_mut().enumerate() {
|
||||||
if let Some(q) = q_opt {
|
if let Some(q) = q_opt {
|
||||||
@ -616,7 +616,7 @@ impl Notetype {
|
|||||||
pub(crate) fn cloze_fields(&self) -> HashSet<usize> {
|
pub(crate) fn cloze_fields(&self) -> HashSet<usize> {
|
||||||
if !self.is_cloze() {
|
if !self.is_cloze() {
|
||||||
HashSet::new()
|
HashSet::new()
|
||||||
} else if let Some((Some(front), _)) = self.parsed_templates().get(0) {
|
} else if let Some((Some(front), _)) = self.parsed_templates().first() {
|
||||||
front
|
front
|
||||||
.all_referenced_cloze_field_names()
|
.all_referenced_cloze_field_names()
|
||||||
.iter()
|
.iter()
|
||||||
@ -647,7 +647,7 @@ fn missing_cloze_filter(
|
|||||||
parsed_templates: &[(Option<ParsedTemplate>, Option<ParsedTemplate>)],
|
parsed_templates: &[(Option<ParsedTemplate>, Option<ParsedTemplate>)],
|
||||||
) -> bool {
|
) -> bool {
|
||||||
parsed_templates
|
parsed_templates
|
||||||
.get(0)
|
.first()
|
||||||
.map_or(true, |t| !has_cloze(&t.0) || !has_cloze(&t.1))
|
.map_or(true, |t| !has_cloze(&t.0) || !has_cloze(&t.1))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ impl Collection {
|
|||||||
.or_invalid("no such notetype")?;
|
.or_invalid("no such notetype")?;
|
||||||
let template = match nt.config.kind() {
|
let template = match nt.config.kind() {
|
||||||
NotetypeKind::Normal => nt.templates.get(card.template_idx as usize),
|
NotetypeKind::Normal => nt.templates.get(card.template_idx as usize),
|
||||||
NotetypeKind::Cloze => nt.templates.get(0),
|
NotetypeKind::Cloze => nt.templates.first(),
|
||||||
}
|
}
|
||||||
.or_invalid("missing template")?;
|
.or_invalid("missing template")?;
|
||||||
|
|
||||||
|
@ -92,12 +92,11 @@ impl Collection {
|
|||||||
original_interval: u32,
|
original_interval: u32,
|
||||||
usn: Usn,
|
usn: Usn,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let ease_factor = u32::try_from(
|
let ease_factor = u32::from(
|
||||||
card.memory_state
|
card.memory_state
|
||||||
.map(|s| ((s.difficulty_shifted() * 1000.) as u16))
|
.map(|s| ((s.difficulty_shifted() * 1000.) as u16))
|
||||||
.unwrap_or(card.ease_factor),
|
.unwrap_or(card.ease_factor),
|
||||||
)
|
);
|
||||||
.unwrap_or_default();
|
|
||||||
let entry = RevlogEntry {
|
let entry = RevlogEntry {
|
||||||
id: RevlogId::new(),
|
id: RevlogId::new(),
|
||||||
cid: card.id,
|
cid: card.id,
|
||||||
|
@ -299,6 +299,15 @@ impl Collection {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl From<NewCardInsertOrder> for NewCardDueOrder {
|
||||||
|
fn from(o: NewCardInsertOrder) -> Self {
|
||||||
|
match o {
|
||||||
|
NewCardInsertOrder::Due => NewCardDueOrder::NoteId,
|
||||||
|
NewCardInsertOrder::Random => NewCardDueOrder::Random,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
use super::*;
|
use super::*;
|
||||||
@ -374,12 +383,3 @@ mod test {
|
|||||||
assert_eq!((card.due, card.reps, card.lapses), (1, 0, 0));
|
assert_eq!((card.due, card.reps, card.lapses), (1, 0, 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<NewCardInsertOrder> for NewCardDueOrder {
|
|
||||||
fn from(o: NewCardInsertOrder) -> Self {
|
|
||||||
match o {
|
|
||||||
NewCardInsertOrder::Due => NewCardDueOrder::NoteId,
|
|
||||||
NewCardInsertOrder::Random => NewCardDueOrder::Random,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -80,7 +80,7 @@ pub(crate) struct BuryMode {
|
|||||||
impl Collection {
|
impl Collection {
|
||||||
pub fn get_next_card(&mut self) -> Result<Option<QueuedCard>> {
|
pub fn get_next_card(&mut self) -> Result<Option<QueuedCard>> {
|
||||||
self.get_queued_cards(1, false)
|
self.get_queued_cards(1, false)
|
||||||
.map(|queued| queued.cards.get(0).cloned())
|
.map(|queued| queued.cards.first().cloned())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_queued_cards(
|
pub fn get_queued_cards(
|
||||||
|
@ -647,7 +647,7 @@ pub fn render_card(
|
|||||||
context.frontside = if context.partial_for_python {
|
context.frontside = if context.partial_for_python {
|
||||||
Some("")
|
Some("")
|
||||||
} else {
|
} else {
|
||||||
let Some(RenderedNode::Text { text }) = &qnodes.get(0) else {
|
let Some(RenderedNode::Text { text }) = &qnodes.first() else {
|
||||||
invalid_input!("should not happen: first node not text");
|
invalid_input!("should not happen: first node not text");
|
||||||
};
|
};
|
||||||
Some(text)
|
Some(text)
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
[toolchain]
|
[toolchain]
|
||||||
# older versions may fail to compile; newer versions may fail the clippy tests
|
# older versions may fail to compile; newer versions may fail the clippy tests
|
||||||
channel = "1.74"
|
channel = "1.75"
|
||||||
|
Loading…
Reference in New Issue
Block a user