/// Protobuf messages for communicating with Summa
///
/// ```rust,no_run
/// use summa_proto::proto;
/// use summa_proto::proto::search_api_client::SearchApiClient;
///
/// #[tokio::main]
/// async fn main() {
/// let summa_conn = tonic::transport::Endpoint::new("grpc://127.0.0.1:8082")
/// .expect("incorrect endpoint")
/// .connect()
/// .await
/// .expect("cannot connect");
/// let mut search_api_client = SearchApiClient::new(summa_conn);
///
/// let search_response = search_api_client
/// .search(proto::SearchRequest {
/// index_queries: vec![proto::IndexQuery {
/// index_alias: "test_index".to_string(),
/// query: Some(proto::Query {
/// query: Some(proto::query::Query::Match(proto::MatchQuery { value: "game of thrones".to_string() })),
/// }),
/// collectors: vec![
/// proto::Collector {
/// collector: Some(proto::collector::Collector::TopDocs(proto::TopDocsCollector {
/// limit: 10,
/// ..Default::default()
/// })),
/// },
/// proto::Collector {
/// collector: Some(proto::collector::Collector::Count(proto::CountCollector {})),
/// }
/// ],
/// }],
/// tags: Default::default(),
/// })
/// .await
/// .expect("cannot search");
/// }
/// ```