Skip to main content

OsmAdapter

Struct OsmAdapter 

Source
pub struct OsmAdapter {
    pub id: &'static str,
    pub overpass_endpoint: String,
    pub tile_endpoint: String,
}
Expand description

Stub adapter for OpenStreetMap Overpass API and MVT vector tile endpoints.

Fields§

§id: &'static str§overpass_endpoint: String§tile_endpoint: String

Implementations§

Source§

impl OsmAdapter

Source

pub fn new( id: &'static str, overpass_endpoint: &str, tile_endpoint: &str, ) -> Self

Source§

impl OsmAdapter

Source

pub fn adapter_id(&self) -> &'static str

Source

pub fn build_fetch_request( &self, bbox: (f64, f64, f64, f64), time_range: (u64, u64), registry: &NetworkDisclosureRegistry, ) -> Result<AdapterHttpRequest, String>

Source

pub fn fetch_region( &self, bbox: (f64, f64, f64, f64), time_range: (u64, u64), registry: &NetworkDisclosureRegistry, ) -> Result<(), String>

Source

pub fn parse_features(&self, body: &str) -> Result<Vec<NQuin>, String>

Parse an OpenStreetMap Overpass API JSON response body into provenance NQuins.

Each element of the top-level elements array (a node, way, or relation) is mapped to a set of Dublin Core / RDF / WGS84 provenance quins, using generate_60bit_token for IRI/literal hashing so the emitted data is queryable by the SPARQL layer (which hashes IRIs the same way). If elements is absent an empty Vec is returned. Only invalid JSON yields an Err.

Trait Implementations§

Source§

impl DataAdapter for OsmAdapter

Source§

fn adapter_id(&self) -> &'static str

Returns the unique identifier for this adapter (e.g., “dem_adapter”)
Source§

fn build_fetch_request( &self, bbox: (f64, f64, f64, f64), time_range: (u64, u64), registry: &NetworkDisclosureRegistry, ) -> Result<AdapterHttpRequest, String>

Build the outbound request for a spatial bounding box [x1, y1, x2, y2] and temporal range [t0, t1]. Implementations must check NetworkDisclosureRegistry before returning an actual network request.
Source§

fn primary_endpoint(&self) -> &str

Primary egress endpoint for disclosure checks and fetch reports.
Source§

fn estimate_tile_count(&self, bbox: (f64, f64, f64, f64)) -> u32

Honest estimate of how many tile/API units would be requested (no fake payloads).
Source§

fn fetch_region( &self, bbox: (f64, f64, f64, f64), time_range: (u64, u64), registry: &NetworkDisclosureRegistry, ) -> Result<(), String>

Initiate fetching through the native blocking transport. Browser WASM cannot legally block on network I/O, so wasm callers use fetch_region_async.
Source§

fn needs_fetch_body(&self) -> bool

Whether the adapter consumes the response body instead of only checking that the endpoint accepted the request.
Source§

fn handle_fetch_body(&self, _body: &str) -> Result<(), String>

Parse or enqueue the fetched body. Most adapters currently only verify access; CKAN consumes JSON discovery results here.
Source§

fn parse_response(&self, _body: &str) -> Result<Vec<NQuin>, String>

Parse a fetched response body into provenance NQuins (title / license / created / source / lat / long, hashed with the same generate_60bit_token the SPARQL layer uses, so the results are queryable). Adapters that can interpret their response format override this — GBIF, OSM/Overpass, STAC, OGC 3D Tiles and SPARQL-results do — and the default yields none. This is how a fetched response becomes graph data rather than being discarded.
Source§

fn fetch_region_features( &self, bbox: (f64, f64, f64, f64), time_range: (u64, u64), registry: &NetworkDisclosureRegistry, ) -> Result<Vec<NQuin>, String>

Native fetch that returns the parsed provenance NQuins: build the consent-gated request, execute it, and run parse_response on the body. A caller can then route the quins into the graph. (WASM callers fetch via fetch_region_async and call parse_response on the returned body.)

Auto Trait Implementations§

Blanket Implementations§

§

impl<S, A> Aggregate<Result<S, Error>> for A
where A: Aggregate<S>,

§

fn from_shares<T>(iter: T) -> Result<A, Error>
where T: IntoIterator<Item = Result<S, Error>>,

Aggregate shares in an MPC protocol.
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
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
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.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

impl<T> WasmNotSync for T
where T: Sync,