xso: fix no_std support

This reverts the Revert in 6ec275d3 which had to be done in order to
un-break usage of xso in std crates.
This commit is contained in:
Jonas Schäfer 2025-01-26 11:18:03 +01:00 committed by Link Mauve
commit beae4ae66b
9 changed files with 42 additions and 9 deletions

View file

@ -140,7 +140,7 @@ impl NameVariant {
quote! {
let name = (
::xso::exports::rxml::Namespace::from(#xml_namespace),
::std::borrow::Cow::Borrowed(#xml_name),
::xso::exports::alloc::borrow::Cow::Borrowed(#xml_name),
);
#init
}

View file

@ -128,7 +128,7 @@ impl Field for AttributeField {
generator: quote! {
#generator.map(|#bound_name| ::xso::Item::Attribute(
#xml_namespace,
::std::borrow::Cow::Borrowed(#xml_name),
::xso::exports::alloc::borrow::Cow::Borrowed(#xml_name),
#bound_name,
));
},

View file

@ -423,7 +423,7 @@ impl ExtractDef {
quote! {
let name = (
::xso::exports::rxml::Namespace::from(#xml_namespace),
::std::borrow::Cow::Borrowed(#xml_name),
::xso::exports::alloc::borrow::Cow::Borrowed(#xml_name),
);
#init
}

View file

@ -125,7 +125,7 @@ impl Field for FlagField {
2 => ::core::result::Result::Ok(::core::option::Option::Some(
::xso::Item::ElementHeadStart(
::xso::exports::rxml::Namespace::from(#xml_namespace),
::std::borrow::Cow::Borrowed(#xml_name),
::xso::exports::alloc::borrow::Cow::Borrowed(#xml_name),
)
)),
_ => unreachable!(),

View file

@ -51,7 +51,7 @@ impl Field for TextField {
Ok(FieldBuilderPart::Text {
value: FieldTempInit {
init: quote! { ::std::string::String::new() },
init: quote! { ::xso::exports::alloc::string::String::new() },
ty: string_ty(Span::call_site()),
},
collect: quote! {

View file

@ -294,7 +294,7 @@ impl StructInner {
quote! {
let name = (
::xso::exports::rxml::Namespace::from(#xml_namespace),
::std::borrow::Cow::Borrowed(#xml_name),
::xso::exports::alloc::borrow::Cow::Borrowed(#xml_name),
);
#init
}

View file

@ -84,7 +84,15 @@ pub(crate) fn cow_ty(ty: Type, lifetime: Lifetime) -> Type {
}),
segments: [
PathSegment {
ident: Ident::new("std", span),
ident: Ident::new("xso", span),
arguments: PathArguments::None,
},
PathSegment {
ident: Ident::new("exports", span),
arguments: PathArguments::None,
},
PathSegment {
ident: Ident::new("alloc", span),
arguments: PathArguments::None,
},
PathSegment {
@ -233,7 +241,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 +251,15 @@ pub(crate) fn string_ty(span: Span) -> Type {
}),
segments: [
PathSegment {
ident: Ident::new("std", span),
ident: Ident::new("xso", span),
arguments: PathArguments::None,
},
PathSegment {
ident: Ident::new("exports", span),
arguments: PathArguments::None,
},
PathSegment {
ident: Ident::new("alloc", span),
arguments: PathArguments::None,
},
PathSegment {