Skip to main content

TypeLookupServer

Struct TypeLookupServer 

Source
pub struct TypeLookupServer {
    pub registry: TypeRegistry,
    /* private fields */
}
Expand description

Server-Side TypeLookup-Service (Responder).

Haelt eine Referenz auf eine TypeRegistry und beantwortet RPC-Requests aus deren Inhalt. Stateless ueber Requests hinweg (jeder Request bringt seinen eigenen ContinuationPoint mit).

Fields§

§registry: TypeRegistry

Registry mit lokal bekannten TypeObjects.

Implementations§

Source§

impl TypeLookupServer

Source

pub const DEFAULT_DEPENDENCY_PAGE_SIZE: usize = 100

Standard-Pagegroesse fuer Dependency-Replies (§7.6.3.3.4 erlaubt jede Wahl; 100 ist ein Kompromiss zwischen Roundtrips und Reply-Groesse).

Source

pub fn new() -> Self

Konstruiert einen Server ueber einer leeren Registry.

Source

pub fn with_registry(registry: TypeRegistry) -> Self

Konstruiert einen Server ueber einer existierenden Registry.

Source

pub fn with_page_size(self, page_size: usize) -> Self

Setzt die Page-Size fuer Dependency-Pagination. page_size = 0 wird auf 1 gehoben (eine Iteration pro Reply).

Source

pub fn page_size(&self) -> usize

Aktuell konfigurierte Page-Size.

Source

pub fn handle_get_types(&self, req: &GetTypesRequest) -> GetTypesReply

Beantwortet getTypes(type_ids).

Fuer jeden bekannten EquivalenceHashMinimal/Complete wird das passende ReplyTypeObject eingefuegt. Unbekannte Hashes und Nicht-Hash-Identifier (Primitives, Plain-Collections — die brauchen kein TypeObject) werden uebersprungen.

Source

pub fn handle_get_type_dependencies( &self, req: &GetTypeDependenciesRequest, ) -> GetTypeDependenciesReply

Beantwortet getTypeDependencies(type_ids, continuation_point).

Sammelt fuer alle angefragten Hashes die transitiv-bekannten Dependencies. Wenn die Gesamtliste mehr als page_size Eintraege enthaelt, wird sie geteilt: das Reply liefert die ersten page_size und einen Continuation-Point, der den Offset in der nachsten Iteration markiert.

Continuation-Point-Encoding (§7.6.3.3.3): wir kodieren den Offset als 4-byte LE in den ersten 4 Bytes (Rest = 0). Das ist Implementation-Choice — der Spec sagt nur “opaque, max 32 bytes”. Externe Peers sehen den CP als Black-Box und schicken ihn unveraendert zurueck.

Trait Implementations§

Source§

impl Clone for TypeLookupServer

Source§

fn clone(&self) -> TypeLookupServer

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TypeLookupServer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for TypeLookupServer

Source§

fn default() -> Self

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

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.