solrust 0.1.10

Solr Client for Rust
Documentation
//! This module defines builder struct that build the value for `sort` parameter.

pub struct SortOrderBuilder {
    order: Vec<String>,
}

impl SortOrderBuilder {
    pub fn new() -> Self {
        Self { order: Vec::new() }
    }

    pub fn build(&self) -> String {
        self.order.join(",")
    }

    pub fn asc(mut self, field: &str) -> Self {
        self.order.push(format!("{} asc", field));
        self
    }

    pub fn desc(mut self, field: &str) -> Self {
        self.order.push(format!("{} desc", field));
        self
    }
}

#[cfg(test)]
mod test {
    use super::*;

    #[test]
    fn test_build_sort_order() {
        let sort = SortOrderBuilder::new().desc("score").asc("name").build();

        assert_eq!(String::from("score desc,name asc"), sort);
    }
}