mirror of
https://github.com/rust-embedded/heapless.git
synced 2025-10-02 06:50:32 +00:00
Fix fmt
This commit is contained in:
parent
3de878b09e
commit
f7cb3e575f
32
src/de.rs
32
src/de.rs
@ -1,10 +1,10 @@
|
|||||||
|
use crate::{
|
||||||
|
sealed::binary_heap::Kind as BinaryHeapKind, BinaryHeap, IndexMap, IndexSet, LinearMap, String,
|
||||||
|
Vec,
|
||||||
|
};
|
||||||
use core::{fmt, marker::PhantomData};
|
use core::{fmt, marker::PhantomData};
|
||||||
use hash32::{BuildHasherDefault, Hash, Hasher};
|
use hash32::{BuildHasherDefault, Hash, Hasher};
|
||||||
use serde::de::{self, Deserialize, Deserializer, Error, MapAccess, SeqAccess};
|
use serde::de::{self, Deserialize, Deserializer, Error, MapAccess, SeqAccess};
|
||||||
use crate::{
|
|
||||||
sealed::binary_heap::Kind as BinaryHeapKind,
|
|
||||||
BinaryHeap, IndexMap, IndexSet, LinearMap, String, Vec,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Sequential containers
|
// Sequential containers
|
||||||
|
|
||||||
@ -142,9 +142,9 @@ where
|
|||||||
where
|
where
|
||||||
D: Deserializer<'de>,
|
D: Deserializer<'de>,
|
||||||
{
|
{
|
||||||
struct ValueVisitor<'de, K, V, S, const N:usize>(PhantomData<(&'de (), K, V, S)>);
|
struct ValueVisitor<'de, K, V, S, const N: usize>(PhantomData<(&'de (), K, V, S)>);
|
||||||
|
|
||||||
impl<'de, K, V, S, const N:usize> de::Visitor<'de> for ValueVisitor<'de, K, V, S, N>
|
impl<'de, K, V, S, const N: usize> de::Visitor<'de> for ValueVisitor<'de, K, V, S, N>
|
||||||
where
|
where
|
||||||
K: Eq + Hash + Deserialize<'de>,
|
K: Eq + Hash + Deserialize<'de>,
|
||||||
V: Deserialize<'de>,
|
V: Deserialize<'de>,
|
||||||
@ -175,7 +175,7 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'de, K, V, const N:usize> Deserialize<'de> for LinearMap<K, V, N>
|
impl<'de, K, V, const N: usize> Deserialize<'de> for LinearMap<K, V, N>
|
||||||
where
|
where
|
||||||
K: Eq + Deserialize<'de>,
|
K: Eq + Deserialize<'de>,
|
||||||
V: Deserialize<'de>,
|
V: Deserialize<'de>,
|
||||||
@ -184,9 +184,9 @@ where
|
|||||||
where
|
where
|
||||||
D: Deserializer<'de>,
|
D: Deserializer<'de>,
|
||||||
{
|
{
|
||||||
struct ValueVisitor<'de, K, V, const N:usize>(PhantomData<(&'de (), K, V)>);
|
struct ValueVisitor<'de, K, V, const N: usize>(PhantomData<(&'de (), K, V)>);
|
||||||
|
|
||||||
impl<'de, K, V, const N:usize> de::Visitor<'de> for ValueVisitor<'de, K, V, N>
|
impl<'de, K, V, const N: usize> de::Visitor<'de> for ValueVisitor<'de, K, V, N>
|
||||||
where
|
where
|
||||||
K: Eq + Deserialize<'de>,
|
K: Eq + Deserialize<'de>,
|
||||||
V: Deserialize<'de>,
|
V: Deserialize<'de>,
|
||||||
@ -218,24 +218,18 @@ where
|
|||||||
|
|
||||||
// String containers
|
// String containers
|
||||||
|
|
||||||
impl<'de, const N:usize> Deserialize<'de> for String<N>
|
impl<'de, const N: usize> Deserialize<'de> for String<N> {
|
||||||
{
|
|
||||||
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
||||||
where
|
where
|
||||||
D: Deserializer<'de>,
|
D: Deserializer<'de>,
|
||||||
{
|
{
|
||||||
struct ValueVisitor<'de, const N:usize>(PhantomData<&'de ()>);
|
struct ValueVisitor<'de, const N: usize>(PhantomData<&'de ()>);
|
||||||
|
|
||||||
impl<'de, const N:usize > de::Visitor<'de> for ValueVisitor<'de, N>
|
impl<'de, const N: usize> de::Visitor<'de> for ValueVisitor<'de, N> {
|
||||||
{
|
|
||||||
type Value = String<N>;
|
type Value = String<N>;
|
||||||
|
|
||||||
fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
write!(
|
write!(formatter, "a string no more than {} bytes long", N as u64)
|
||||||
formatter,
|
|
||||||
"a string no more than {} bytes long",
|
|
||||||
N as u64
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
|
fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
|
||||||
|
@ -126,14 +126,12 @@ macro_rules! probe_loop {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct CoreMap<K, V, const N: usize>
|
struct CoreMap<K, V, const N: usize> {
|
||||||
{
|
|
||||||
entries: Vec<Bucket<K, V>, N>,
|
entries: Vec<Bucket<K, V>, N>,
|
||||||
indices: [Option<Pos>; N],
|
indices: [Option<Pos>; N],
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<K, V, const N: usize> CoreMap<K, V, N>
|
impl<K, V, const N: usize> CoreMap<K, V, N> {
|
||||||
{
|
|
||||||
const fn new() -> Self {
|
const fn new() -> Self {
|
||||||
const INIT: Option<Pos> = None;
|
const INIT: Option<Pos> = None;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
use ufmt_write::uWrite;
|
|
||||||
use crate::{string::String, vec::Vec};
|
use crate::{string::String, vec::Vec};
|
||||||
|
use ufmt_write::uWrite;
|
||||||
|
|
||||||
impl<const N: usize> uWrite for String<N> {
|
impl<const N: usize> uWrite for String<N> {
|
||||||
type Error = ();
|
type Error = ();
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
//! Collections of `Send`-able things are `Send`
|
//! Collections of `Send`-able things are `Send`
|
||||||
|
|
||||||
use heapless::{
|
use heapless::{
|
||||||
spsc::{Consumer, Producer, Queue, MultiCore},
|
spsc::{Consumer, MultiCore, Producer, Queue},
|
||||||
HistoryBuffer, Vec,
|
HistoryBuffer, Vec,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@ fn unchecked() {
|
|||||||
scope.execute(move || {
|
scope.execute(move || {
|
||||||
let mut sum: usize = 0;
|
let mut sum: usize = 0;
|
||||||
|
|
||||||
for _ in 0..N/ 2 {
|
for _ in 0..N / 2 {
|
||||||
sum = sum.wrapping_add(usize::from(unsafe { c.dequeue_unchecked() }));
|
sum = sum.wrapping_add(usize::from(unsafe { c.dequeue_unchecked() }));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -197,7 +197,7 @@ fn unchecked() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
assert_eq!(rb.len(), N/ 2);
|
assert_eq!(rb.len(), N / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user