diff --git a/xso-proc/src/enums.rs b/xso-proc/src/enums.rs index 54dcef95..d42f28d3 100644 --- a/xso-proc/src/enums.rs +++ b/xso-proc/src/enums.rs @@ -140,7 +140,7 @@ impl NameVariant { quote! { let name = ( ::xso::exports::rxml::Namespace::from(#xml_namespace), - ::std::borrow::Cow::Borrowed(#xml_name), + ::alloc::borrow::Cow::Borrowed(#xml_name), ); #init } diff --git a/xso-proc/src/field/attribute.rs b/xso-proc/src/field/attribute.rs index 950d9d6c..f358e119 100644 --- a/xso-proc/src/field/attribute.rs +++ b/xso-proc/src/field/attribute.rs @@ -102,7 +102,7 @@ impl Field for AttributeField { generator: quote! { #as_optional_xml_text(#bound_name)?.map(|#bound_name| ::xso::Item::Attribute( #xml_namespace, - ::std::borrow::Cow::Borrowed(#xml_name), + ::alloc::borrow::Cow::Borrowed(#xml_name), #bound_name, )); }, diff --git a/xso-proc/src/field/child.rs b/xso-proc/src/field/child.rs index c6479290..bbfcda84 100644 --- a/xso-proc/src/field/child.rs +++ b/xso-proc/src/field/child.rs @@ -423,7 +423,7 @@ impl ExtractDef { quote! { let name = ( ::xso::exports::rxml::Namespace::from(#xml_namespace), - ::std::borrow::Cow::Borrowed(#xml_name), + ::alloc::borrow::Cow::Borrowed(#xml_name), ); #init } diff --git a/xso-proc/src/field/text.rs b/xso-proc/src/field/text.rs index 9e14d0ad..dab480a2 100644 --- a/xso-proc/src/field/text.rs +++ b/xso-proc/src/field/text.rs @@ -51,7 +51,7 @@ impl Field for TextField { Ok(FieldBuilderPart::Text { value: FieldTempInit { - init: quote! { ::std::string::String::new() }, + init: quote! { ::alloc::string::String::new() }, ty: string_ty(Span::call_site()), }, collect: quote! { diff --git a/xso-proc/src/lib.rs b/xso-proc/src/lib.rs index deff73e1..e2fc530c 100644 --- a/xso-proc/src/lib.rs +++ b/xso-proc/src/lib.rs @@ -18,6 +18,8 @@ return to `xso` for more information**. The documentation of **You have been warned.** */ +extern crate alloc; + // Wondering about RawTokenStream vs. TokenStream? // syn mostly works with proc_macro2, while the proc macros themselves use // proc_macro. diff --git a/xso-proc/src/structs.rs b/xso-proc/src/structs.rs index e6ce621c..2ab2fede 100644 --- a/xso-proc/src/structs.rs +++ b/xso-proc/src/structs.rs @@ -294,7 +294,7 @@ impl StructInner { quote! { let name = ( ::xso::exports::rxml::Namespace::from(#xml_namespace), - ::std::borrow::Cow::Borrowed(#xml_name), + ::alloc::borrow::Cow::Borrowed(#xml_name), ); #init } diff --git a/xso-proc/src/types.rs b/xso-proc/src/types.rs index 2392a22c..dbb17717 100644 --- a/xso-proc/src/types.rs +++ b/xso-proc/src/types.rs @@ -84,7 +84,7 @@ pub(crate) fn cow_ty(ty: Type, lifetime: Lifetime) -> Type { }), segments: [ PathSegment { - ident: Ident::new("std", span), + ident: Ident::new("alloc", span), arguments: PathArguments::None, }, PathSegment { @@ -233,7 +233,7 @@ pub(crate) fn default_fn(of_ty: Type) -> Expr { }) } -/// Construct a [`syn::Type`] referring to `::std::string::String`. +/// Construct a [`syn::Type`] referring to `::alloc::string::String`. pub(crate) fn string_ty(span: Span) -> Type { Type::Path(TypePath { qself: None, @@ -243,7 +243,7 @@ pub(crate) fn string_ty(span: Span) -> Type { }), segments: [ PathSegment { - ident: Ident::new("std", span), + ident: Ident::new("alloc", span), arguments: PathArguments::None, }, PathSegment { diff --git a/xso/src/from_xml_doc.md b/xso/src/from_xml_doc.md index ecf0a1f3..12b94e44 100644 --- a/xso/src/from_xml_doc.md +++ b/xso/src/from_xml_doc.md @@ -588,6 +588,7 @@ a field, for consistency. #### Example without codec ```rust +# extern crate alloc; # use xso::FromXml; #[derive(FromXml, Debug, PartialEq)] #[xml(namespace = "urn:example", name = "foo")] @@ -605,6 +606,7 @@ assert_eq!(foo, Foo { #### Example with codec ```rust +# extern crate alloc; # use xso::FromXml; #[derive(FromXml, Debug, PartialEq)] #[xml(namespace = "urn:example", name = "foo")]