//// Provider-scoped lookups over a record's `externalIds` list. import crate/gen/defs.{type ExternalId} import gleam/list import gleam/option.{type Option} /// The first id carried for `provider`, if any. pub fn find(ids: List(ExternalId), provider: String) -> Option(String) { ids |> list.find(fn(x) { x.provider == provider }) |> option.from_result |> option.map(fn(x) { x.id }) } /// Every id carried for `provider`, in order. pub fn all(ids: List(ExternalId), provider: String) -> List(String) { ids |> list.filter(fn(x) { x.provider == provider }) |> list.map(fn(x) { x.id }) }