Skip to content

Commit b6035a4

Browse files
committed
Shake off dependency on itertools
1 parent f34ee26 commit b6035a4

File tree

8 files changed

+25
-14
lines changed

8 files changed

+25
-14
lines changed

graphql_client/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ categories = ["network-programming", "web-programming", "wasm"]
1111
[dependencies]
1212
failure = "0.1"
1313
graphql_query_derive = {path = "../graphql_query_derive", version = "0.6.1" }
14-
itertools = "0.7"
1514
serde = "^1.0.78"
1615
serde_derive = "1.0"
1716
serde_json = "1.0"

graphql_client/src/lib.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
#![deny(warnings)]
66
#![deny(missing_docs)]
77

8-
extern crate itertools;
98
extern crate serde;
109
#[macro_use]
1110
extern crate serde_derive;
@@ -20,8 +19,6 @@ pub use graphql_query_derive::*;
2019
use std::collections::HashMap;
2120
use std::fmt::{self, Display};
2221

23-
use itertools::Itertools;
24-
2522
/// A convenience trait that can be used to build a GraphQL request body.
2623
///
2724
/// This will be implemented for you by codegen in the normal case. It is implemented on the struct you place the derive on.
@@ -208,7 +205,18 @@ impl Display for Error {
208205
let path = self
209206
.path
210207
.as_ref()
211-
.map(|fragments| format!("{}", fragments.iter().format("/")))
208+
.map(|fragments| {
209+
format!(
210+
"{}",
211+
fragments
212+
.iter()
213+
.fold(String::new(), |mut acc, item| {
214+
acc.push_str(&format!("{}/", item));
215+
acc
216+
})
217+
.trim_end_matches("/")
218+
)
219+
})
212220
.unwrap_or_else(|| "<query>".to_string());
213221

214222
// Get the location of the error. We'll use just the first location for this.

graphql_client/tests/json_schema/query_2.graphql

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,3 @@ query WithSchema2 {
33
accountId
44
}
55
}
6-

graphql_client_codegen/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ repository = "https://github.com/graphql-rust/graphql-client"
88

99
[dependencies]
1010
failure = "0.1"
11-
itertools = "0.7"
1211
lazy_static = "1.0"
1312
quote = "0.6"
1413
syn = "0.15.20"

graphql_client_codegen/src/inputs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ mod tests {
212212
};
213213

214214
let expected: String = vec![
215-
"# [ derive ( Serialize , Clone ) ] ",
215+
"# [ derive ( Clone , Serialize ) ] ",
216216
"pub struct Cat { ",
217217
"pub offsprings : Vec < Cat > , ",
218218
"# [ serde ( rename = \"pawsCount\" ) ] ",

graphql_client_codegen/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
extern crate failure;
1010
extern crate graphql_parser;
1111
extern crate heck;
12-
extern crate itertools;
1312
#[macro_use]
1413
extern crate lazy_static;
1514
extern crate proc_macro;

graphql_client_codegen/src/query.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use deprecation::DeprecationStrategy;
22
use failure;
33
use fragments::GqlFragment;
4-
use itertools::Itertools;
54
use proc_macro2::Span;
65
use proc_macro2::TokenStream;
76
use schema::Schema;
@@ -104,15 +103,19 @@ impl<'query, 'schema> QueryContext<'query, 'schema> {
104103
}
105104

106105
pub(crate) fn variables_derives(&self) -> TokenStream {
107-
let derives = self.variables_derives.iter().unique();
106+
use std::collections::BTreeSet;
107+
let derives: BTreeSet<&Ident> = self.variables_derives.iter().collect();
108+
let derives = derives.iter();
108109

109110
quote! {
110111
#[derive( #(#derives),* )]
111112
}
112113
}
113114

114115
pub(crate) fn response_derives(&self) -> TokenStream {
115-
let derives = self.response_derives.iter().unique();
116+
use std::collections::BTreeSet;
117+
let derives: BTreeSet<&Ident> = self.response_derives.iter().collect();
118+
let derives = derives.iter();
116119

117120
quote! {
118121
#[derive( #(#derives),* )]

graphql_client_codegen/src/shared.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use deprecation::{DeprecationStatus, DeprecationStrategy};
22
use failure;
33
use heck::{CamelCase, SnakeCase};
4-
use itertools::Itertools;
54
use objects::GqlObjectField;
65
use proc_macro2::{Ident, Span, TokenStream};
76
use query::QueryContext;
@@ -115,7 +114,12 @@ pub(crate) fn response_fields_for_selection(
115114
schema_fields
116115
.iter()
117116
.map(|ref field| &field.name)
118-
.format("`, `"),
117+
.fold(String::new(), |mut acc, item| {
118+
acc.push_str(item);
119+
acc.push_str(", ");
120+
acc
121+
})
122+
.trim_end_matches(", ")
119123
)
120124
})?;
121125
let ty = schema_field.type_.to_rust(

0 commit comments

Comments
 (0)