pub struct ParseQuery {
pub opening_filter: OpeningFilterMode,
pub tessellation_quality: Option<String>,
pub parquet_layout: ParquetLayout,
pub stream_shapes: StreamShapes,
pub data_model_entities: DataModelEntities,
pub sha256: Option<String>,
}Expand description
Query parameters shared by all parse endpoints.
Fields§
§opening_filter: OpeningFilterModeOpening filter mode: “default”, “ignore_all”, or “ignore_opaque”.
tessellation_quality: Option<String>Tessellation detail level (#976): “lowest” | “low” | “medium” | “high”
| “highest”. Omitted = “medium” (byte-identical to the historical
output — and to what the wasm path produces without
setTessellationQuality, keeping client and server meshes in parity).
parquet_layout: ParquetLayoutFlat-Parquet mesh-table layout (#3888): “flat” (default) or
“shared-shapes” — see ParquetLayout for why it is opt-in. A query
parameter rather than a header because every endpoint it has to reach
(both parse routes, the cache check, the cached-geometry fetch) already
takes this struct, so the signal travels with the cache identity.
stream_shapes: StreamShapesWhether POST /api/v1/parse/parquet-stream may share shapes ACROSS
batches (#5407): “batch-local” (default) or “cross-batch”, which needs
parquet_layout=shared-shapes. See StreamShapes for why it is a
second opt-in rather than implied by the layout. Ignored by every other
route, and not part of the cache identity.
data_model_entities: DataModelEntitiesWhich rows the data model’s entities table carries (#6034): “all”
(default, every STEP instance) or “rooted” (objects with a GlobalId,
plus every instance another data-model table references). See
DataModelEntities. Read by every route that writes the data model
(/parse/parquet, /parse/parquet/optimized, /parse/parquet-stream)
and by /cache/check, because it selects WHICH data-model entry has to
exist; the geometry and metadata entries are the same for both.
sha256: Option<String>SHA-256 of the file the client is asking about, hex, lowercase (#3901).
Read by POST /api/v1/parse/parquet-stream and (since #5128)
POST /api/v1/parse/parquet/optimized, and only when the request
carries no multipart body: see cached_replay::replay_by_client_hash
and parquet_optimized_replay::replay_optimized_by_client_hash for
what each does and what it is not allowed to do. It lives on this
struct rather than in a header so it travels with the rest of the cache
identity (opening_filter, tessellation_quality, parquet_layout)
through the one place every parse route already parses. A hash paired
with the wrong layout names a different entry, and splitting one
identity across two transports is how such pairings drift apart.
Implementations§
Source§impl ParseQuery
impl ParseQuery
Sourcefn resolved_stream_shapes(&self) -> Result<StreamShapes, ApiError>
fn resolved_stream_shapes(&self) -> Result<StreamShapes, ApiError>
The stream’s batch-sharing mode, refusing cross-batch sharing on the flat layout: that layout has no rotation columns and must stay byte-identical to v5, so it cannot share anything, and a client asking for it has misread the contract.
Sourcefn resolved_tessellation_quality(&self) -> Result<TessellationQuality, ApiError>
fn resolved_tessellation_quality(&self) -> Result<TessellationQuality, ApiError>
Resolve and validate the requested tessellation level.
Trait Implementations§
Source§impl Default for ParseQuery
impl Default for ParseQuery
Source§fn default() -> ParseQuery
fn default() -> ParseQuery
Source§impl<'de> Deserialize<'de> for ParseQuery
impl<'de> Deserialize<'de> for ParseQuery
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ParseQuery
impl RefUnwindSafe for ParseQuery
impl Send for ParseQuery
impl Sync for ParseQuery
impl Unpin for ParseQuery
impl UnwindSafe for ParseQuery
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.