MindatClient

Struct MindatClient 

Source
pub struct MindatClient { /* private fields */ }
Expand description

Client for interacting with the Mindat API.

Implementations§

Source§

impl MindatClient

Source

pub fn new(token: impl Into<String>) -> Self

Create a new client with the given API token.

§Example
use mindat_rs::MindatClient;

let client = MindatClient::new("your-api-token");
Source

pub fn anonymous() -> Self

Create a new client without authentication. Some endpoints (like minerals_ima) work without authentication.

Source

pub fn builder() -> MindatClientBuilder

Create a new client builder for more configuration options.

Source

pub fn set_token(&mut self, token: impl Into<String>)

Set the API token.

Source

pub fn base_url(&self) -> &Url

Get the base URL.

Source

pub async fn countries(&self) -> Result<PaginatedResponse<Country>>

List all countries.

§Example
use mindat_rs::MindatClient;

let client = MindatClient::new("your-token");
let countries = client.countries().await?;
for country in countries.results {
    println!("{}: {}", country.iso, country.text);
}
Source

pub async fn countries_page( &self, page: i32, ) -> Result<PaginatedResponse<Country>>

List countries with pagination.

Source

pub async fn country(&self, id: i32) -> Result<Country>

Get a specific country by ID.

Source

pub async fn geomaterials( &self, query: GeomaterialsQuery, ) -> Result<PaginatedResponse<Geomaterial>>

List geomaterials with optional filters.

§Example
use mindat_rs::{MindatClient, GeomaterialsQuery};

let client = MindatClient::new("your-token");

// Get IMA-approved minerals containing copper
let query = GeomaterialsQuery::new()
    .ima_approved(true)
    .with_elements("Cu")
    .page_size(50);

let minerals = client.geomaterials(query).await?;
for mineral in minerals.results {
    println!("{}: {:?}", mineral.id, mineral.name);
}
Source

pub async fn geomaterial(&self, id: i32) -> Result<Geomaterial>

Get a specific geomaterial by ID.

Source

pub async fn geomaterial_varieties(&self, id: i32) -> Result<Geomaterial>

Get varieties of a specific geomaterial.

Search for geomaterials.

Source

pub async fn localities( &self, query: LocalitiesQuery, ) -> Result<CursorPaginatedResponse<Locality>>

List localities with optional filters.

§Example
use mindat_rs::{MindatClient, LocalitiesQuery};

let client = MindatClient::new("your-token");

// Get localities in Brazil
let query = LocalitiesQuery::new().country("Brazil");
let localities = client.localities(query).await?;
for loc in localities.results {
    println!("{}: {:?}", loc.id, loc.txt);
}
Source

pub async fn locality(&self, id: i32) -> Result<Locality>

Get a specific locality by ID.

Source

pub async fn locality_ages( &self, page: Option<i32>, ) -> Result<PaginatedResponse<LocalityAge>>

List locality ages.

Source

pub async fn locality_age(&self, age_id: i32) -> Result<LocalityAge>

Get a specific locality age by ID.

Source

pub async fn locality_statuses( &self, page: Option<i32>, ) -> Result<PaginatedResponse<LocalityStatus>>

List locality statuses.

Source

pub async fn locality_status(&self, ls_id: i32) -> Result<LocalityStatus>

Get a specific locality status by ID.

Source

pub async fn locality_types( &self, page: Option<i32>, ) -> Result<PaginatedResponse<LocalityType>>

List locality types.

Source

pub async fn locality_type(&self, lt_id: i32) -> Result<LocalityType>

Get a specific locality type by ID.

Source

pub async fn geo_regions( &self, page: Option<i32>, ) -> Result<PaginatedResponse<Value>>

List geographic regions.

Source

pub async fn minerals_ima( &self, query: ImaMineralsQuery, ) -> Result<PaginatedResponse<ImaMaterial>>

List IMA-approved minerals.

§Example
use mindat_rs::{MindatClient, ImaMineralsQuery};

let client = MindatClient::anonymous(); // No auth required
let query = ImaMineralsQuery::new().page_size(100);
let minerals = client.minerals_ima(query).await?;
for mineral in minerals.results {
    println!("{}: {:?}", mineral.id, mineral.name);
}
Source

pub async fn mineral_ima(&self, id: i32) -> Result<Geomaterial>

Get a specific IMA mineral by ID.

Source

pub async fn dana8_groups(&self) -> Result<Value>

Get Dana 8th edition classification groups.

Source

pub async fn dana8_subgroups(&self) -> Result<Value>

Get Dana 8th edition classification subgroups.

Source

pub async fn dana8(&self, id: i32) -> Result<Value>

Get a specific Dana 8th edition classification.

Source

pub async fn strunz10_classes(&self) -> Result<Value>

Get Nickel-Strunz 10th edition classification classes.

Source

pub async fn strunz10_subclasses(&self) -> Result<Value>

Get Nickel-Strunz 10th edition classification subclasses.

Source

pub async fn strunz10_families(&self) -> Result<Value>

Get Nickel-Strunz 10th edition classification families.

Source

pub async fn strunz10(&self, id: i32) -> Result<Value>

Get a specific Nickel-Strunz 10th edition classification.

Source

pub async fn photocount(&self) -> Result<Value>

Get photo count statistics.

Trait Implementations§

Source§

impl Clone for MindatClient

Source§

fn clone(&self) -> MindatClient

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MindatClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

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

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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> PolicyExt for T
where T: ?Sized,

Source§

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

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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