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: TypeRegistryRegistry mit lokal bekannten TypeObjects.
Implementations§
Source§impl TypeLookupServer
impl TypeLookupServer
Sourcepub const DEFAULT_DEPENDENCY_PAGE_SIZE: usize = 100
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).
Sourcepub fn with_registry(registry: TypeRegistry) -> Self
pub fn with_registry(registry: TypeRegistry) -> Self
Konstruiert einen Server ueber einer existierenden Registry.
Sourcepub fn with_page_size(self, page_size: usize) -> Self
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).
Sourcepub fn handle_get_types(&self, req: &GetTypesRequest) -> GetTypesReply
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.
Sourcepub fn handle_get_type_dependencies(
&self,
req: &GetTypeDependenciesRequest,
) -> GetTypeDependenciesReply
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
impl Clone for TypeLookupServer
Source§fn clone(&self) -> TypeLookupServer
fn clone(&self) -> TypeLookupServer
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more