1#![doc = include_str!("../README.md")]
2
3use serde::{Deserialize, Serialize};
4use std::fmt;
5
6pub mod client;
7pub mod error;
8
9pub use client::Client;
10pub use client::query::*;
11pub use error::{Error, Result};
12
13#[derive(Clone, Copy, Debug, PartialEq, Deserialize, Serialize)]
14pub enum Verb {
15 GetRecord,
16 Identify,
17 ListIdentifiers,
18 ListMetadataFormats,
19 ListRecords,
20 ListSets,
21}
22
23impl fmt::Display for Verb {
24 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
25 match self {
26 Verb::GetRecord => write!(f, "GetRecord"),
27 Verb::Identify => write!(f, "Identify"),
28 Verb::ListIdentifiers => write!(f, "ListIdentifiers"),
29 Verb::ListMetadataFormats => write!(f, "ListMetadataFormats"),
30 Verb::ListRecords => write!(f, "ListRecords"),
31 Verb::ListSets => write!(f, "ListSets"),
32 }
33 }
34}
35
36#[cfg(test)]
37mod tests {
38 use crate::Verb;
39
40 #[test]
41 fn converts_verb_to_param() {
42 let verb = Verb::GetRecord;
43 assert_eq!("GetRecord", verb.to_string());
44 }
45}