MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / list_by_dev_addr_prefix_overlap

Function list_by_dev_addr_prefix_overlap

chirpstack/src/storage/tenant.rs:321–344  ·  view source on GitHub ↗
(
    dev_addr_prefix: lrwn::DevAddrPrefix,
)

Source from the content-addressed store, hash-verified

319}
320
321pub async fn list_by_dev_addr_prefix_overlap(
322 dev_addr_prefix: lrwn::DevAddrPrefix,
323) -> Result<Vec<Tenant>, Error> {
324 let tenants: Vec<Tenant> = tenant::table
325 .order_by(tenant::name)
326 .load(&mut get_async_db_conn().await?)
327 .await?;
328
329 Ok(tenants
330 .into_iter()
331 .filter(|t| {
332 let prefixes: Vec<lrwn::DevAddrPrefix> =
333 (*t.dev_addr_prefixes).iter().cloned().flatten().collect();
334
335 for p in prefixes {
336 if dev_addr_prefix.is_subset_of(&p) || p.is_subset_of(&dev_addr_prefix) {
337 return true;
338 }
339 }
340
341 false
342 })
343 .collect())
344}
345
346pub async fn add_user(
347 tu: TenantUser,

Callers 1

Calls 4

into_iterMethod · 0.80
iterMethod · 0.80
is_subset_ofMethod · 0.80
get_async_db_connFunction · 0.70

Tested by

no test coverage detected