Skip to main content

oai_pmh/
lib.rs

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}