Skip to main content

Esp32S3

Struct Esp32S3 

Source
pub struct Esp32S3<A = Global, const MAX_REQUEST_HANDLERS: usize = prns_core::::storage::impls::esp32s3::Esp32S3::{constant#0}>(/* private fields */)
where
    A: Allocator;
Expand description

The PSRAM-backed ESP32-S3 storage profile.

MAX_REQUEST_HANDLERS is independent from the upstream-application destination capacity: applications commonly register several request paths on one destination. It defaults to the historical two rows, while application recipes with more routes should supply their exact registration count.

Implementations§

Source§

impl<A, const MAX_REQUEST_HANDLERS: usize> Esp32S3<A, MAX_REQUEST_HANDLERS>
where A: Allocator,

Source

pub const TRACKED_DESTINATIONS: usize = MAX_TRACKED_DESTINATIONS

Cheap retained sessions outnumber every configured auto-interface fleet member, leaving admission room without multiplying resource or channel workspaces.

Source

pub const MAX_OUTGOING_RESOURCE_REACTION_FRAMES: usize

The most frames one resource request can synchronously emit for this storage recipe.

A request names at most WINDOW_MAX existing parts, and a response can append one hashmap update. Compact layouts cannot materialize a full 75-part resource, so deriving the bound from their outgoing store avoids reserving unreachable transport backlog on every lane.

Trait Implementations§

Source§

impl<A, const MAX_REQUEST_HANDLERS: usize> Default for Esp32S3<A, MAX_REQUEST_HANDLERS>
where A: Allocator,

Source§

fn default() -> Esp32S3<A, MAX_REQUEST_HANDLERS>

Returns the “default value” for a type. Read more
Source§

impl<A, const MAX_REQUEST_HANDLERS: usize> StorageLayout for Esp32S3<A, MAX_REQUEST_HANDLERS>
where A: Allocator + Default,

Source§

const LIMITS: DisplayedStorageLimits

Source§

type Routes = FixedHeapRouteTable<prns_core::::storage::impls::esp32s3::{impl#2}::Routes::{constant#0}, prns_core::::storage::impls::esp32s3::{impl#2}::Routes::{constant#1}, A>

Source§

type RouteExpiries = LinearRouteExpiryIndex

Source§

type DestinationIdentities = NoDestinationIdentityTable

Source§

type DestinationIdentityAppData = NoDestinationIdentityAppData

Source§

type Announces = FixedHeapAnnounceRecordTable<prns_core::::storage::impls::esp32s3::{impl#2}::Announces::{constant#0}, A>

Source§

type History = FixedHeapAnnounceIdHistory<prns_core::::storage::impls::esp32s3::{impl#2}::History::{constant#0}, prns_core::::storage::impls::esp32s3::{impl#2}::History::{constant#1}, A>

Source§

type AppData = FixedHeapPackedAppDataArena<prns_core::::storage::impls::esp32s3::{impl#2}::AppData::{constant#0}, prns_core::::storage::impls::esp32s3::{impl#2}::AppData::{constant#1}, A>

Source§

type ScheduledAnnounces = FixedHeapScheduledAnnounceQueue<prns_core::::storage::impls::esp32s3::{impl#2}::ScheduledAnnounces::{constant#0}, A>

Source§

type UpstreamAppDestinations = FixedUpstreamAppDestinationTable<prns_core::::storage::impls::esp32s3::{impl#2}::UpstreamAppDestinations::{constant#0}>

Source§

type HeldIdentities = FixedHeldIdentityTable<prns_core::::storage::impls::esp32s3::{impl#2}::HeldIdentities::{constant#0}>

Source§

type SelfRatchets = FixedSelfRatchetTable<prns_core::::storage::impls::esp32s3::{impl#2}::SelfRatchets::{constant#0}, prns_core::::storage::impls::esp32s3::{impl#2}::SelfRatchets::{constant#1}>

Source§

type Receipts = FixedReceiptTable<prns_core::::storage::impls::esp32s3::{impl#2}::Receipts::{constant#0}>

Source§

type PacketHashes = FixedPacketHashHistory<prns_core::::storage::impls::esp32s3::{impl#2}::PacketHashes::{constant#0}>

Source§

type Blackholes = FixedHeapBlackholeTable<prns_core::::storage::impls::esp32s3::{impl#2}::Blackholes::{constant#1}, prns_core::::storage::impls::esp32s3::{impl#2}::Blackholes::{constant#0}, prns_core::::storage::impls::esp32s3::{impl#2}::Blackholes::{constant#2}, A>

Source§

type ReverseRoutes = FixedReverseRouteTable<prns_core::::storage::impls::esp32s3::{impl#2}::ReverseRoutes::{constant#0}>

Source§

type DepartedInterfaces = FixedDepartedInterfaceTable<16>

Source§

type PendingPathRequests = FixedPendingPathRequestTable<prns_core::::storage::impls::esp32s3::{impl#2}::PendingPathRequests::{constant#0}>

Source§

type RecentPathRequests = FixedRecentPathRequestTable<8>

Source§

type SeenPathRequests = FixedSeenPathRequestTable<8>

Source§

type Tunnels = FixedTunnelTable<0>

Source§

type RecursivePathRequests = FixedRecursivePathRequestTable<8>

Source§

type InterfacePathRequestLimits = FixedInterfacePathRequestLimitTable<8>

Source§

type InterfaceAnnounceLimits = FixedInterfaceAnnounceLimitTable<8>

Source§

type DirtyInterfaces = Vec<InterfaceId, 8>

Source§

type HeldAnnounces = SoaHeldAnnounceTable<FixedHeapSoaColumns<prns_core::::storage::impls::esp32s3::{impl#2}::HeldAnnounces::{constant#0}, A>>

Source§

type HeldAnnounceAppData = FixedHeapPackedAppDataArena<65536, prns_core::::storage::impls::esp32s3::{impl#2}::HeldAnnounceAppData::{constant#1}, A>

Source§

type DestinationAnnounceLimits = FixedHeapDestinationAnnounceLimitTable<prns_core::::storage::impls::esp32s3::{impl#2}::DestinationAnnounceLimits::{constant#0}, prns_core::::storage::impls::esp32s3::{impl#2}::DestinationAnnounceLimits::{constant#1}, A>

Source§

type GroupKeys = FixedGroupKeyTable<prns_core::::storage::impls::esp32s3::{impl#2}::GroupKeys::{constant#0}>

Source§

type RequestHandlers = FixedRequestHandlerTable<MAX_REQUEST_HANDLERS>

Source§

type OutgoingResources = FixedHeapResourceTable<OutgoingResourceState, 1, prns_core::::storage::impls::esp32s3::{impl#2}::OutgoingResources::{constant#1}, prns_core::::storage::impls::esp32s3::{impl#2}::OutgoingResources::{constant#2}, A>

Source§

type IncomingResources = FixedHeapResourceTable<IncomingResourceState, 1, prns_core::::storage::impls::esp32s3::{impl#2}::IncomingResources::{constant#1}, prns_core::::storage::impls::esp32s3::{impl#2}::IncomingResources::{constant#2}, A>

Source§

type IncomingAssemblies = FixedIncomingAssemblyTable<prns_core::::storage::impls::esp32s3::{impl#2}::IncomingAssemblies::{constant#0}>

Source§

type OutgoingAssemblies = FixedStaticOutgoingAssemblyTable<prns_core::::storage::impls::esp32s3::{impl#2}::OutgoingAssemblies::{constant#0}>

Source§

type Channels = FixedHeapChannelTable<prns_core::::storage::impls::esp32s3::{impl#2}::Channels::{constant#0}, prns_core::::storage::impls::esp32s3::{impl#2}::Channels::{constant#1}, prns_core::::storage::impls::esp32s3::{impl#2}::Channels::{constant#2}, prns_core::::storage::impls::esp32s3::{impl#2}::Channels::{constant#3}, A>

Auto Trait Implementations§

§

impl<A, const MAX_REQUEST_HANDLERS: usize> Freeze for Esp32S3<A, MAX_REQUEST_HANDLERS>

§

impl<A, const MAX_REQUEST_HANDLERS: usize> RefUnwindSafe for Esp32S3<A, MAX_REQUEST_HANDLERS>
where A: RefUnwindSafe,

§

impl<A, const MAX_REQUEST_HANDLERS: usize> Send for Esp32S3<A, MAX_REQUEST_HANDLERS>
where A: Send,

§

impl<A, const MAX_REQUEST_HANDLERS: usize> Sync for Esp32S3<A, MAX_REQUEST_HANDLERS>
where A: Sync,

§

impl<A, const MAX_REQUEST_HANDLERS: usize> Unpin for Esp32S3<A, MAX_REQUEST_HANDLERS>
where A: Unpin,

§

impl<A, const MAX_REQUEST_HANDLERS: usize> UnsafeUnpin for Esp32S3<A, MAX_REQUEST_HANDLERS>

§

impl<A, const MAX_REQUEST_HANDLERS: usize> UnwindSafe for Esp32S3<A, MAX_REQUEST_HANDLERS>
where A: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.