Skip to content

Commit 841cbc2

Browse files
committed
Fix things
1 parent 096a979 commit 841cbc2

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

packages/renderers-rust/src/utils/traitOptions.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,21 @@ export type TraitOptions = {
3030
};
3131

3232
export const DEFAULT_TRAIT_OPTIONS: Required<TraitOptions> = {
33-
baseDefaults: ['borsh::BorshSerialize', 'borsh::BorshDeserialize', 'Clone', 'Debug', 'Eq', 'PartialEq'],
33+
baseDefaults: [
34+
'borsh::BorshSerialize',
35+
'borsh::BorshDeserialize',
36+
'serde::Serialize',
37+
'serde::Deserialize',
38+
'Clone',
39+
'Debug',
40+
'Eq',
41+
'PartialEq',
42+
],
3443
dataEnumDefaults: [],
3544
featureFlags: { serde: ['serde::Serialize', 'serde::Deserialize'] },
3645
overrides: {},
3746
scalarEnumDefaults: ['Copy', 'PartialOrd', 'Hash', 'num_derive::FromPrimitive'],
38-
structDefaults: ['serde::Serialize', 'serde::Deserialize'],
47+
structDefaults: [],
3948
useFullyQualifiedName: false,
4049
};
4150

@@ -66,24 +75,20 @@ export function getTraitsFromNode(
6675
const allTraits = nodeOverrides === undefined ? getDefaultTraits(nodeType, options) : nodeOverrides;
6776

6877
// Wrap the traits in feature flags if necessary.
69-
let [unfeaturedTraits, featuredTraits] = partitionTraitsInFeatures(allTraits, options.featureFlags);
78+
const partitionedTraits = partitionTraitsInFeatures(allTraits, options.featureFlags);
7079

7180
// Import the traits if necessary.
7281
const imports = new ImportMap();
7382
if (!options.useFullyQualifiedName) {
74-
unfeaturedTraits = extractFullyQualifiedNames(unfeaturedTraits, imports);
75-
featuredTraits = Object.fromEntries(
76-
Object.entries(featuredTraits).map(([feature, traits]) => {
77-
return [feature, extractFullyQualifiedNames(traits, imports)];
78-
}),
79-
);
83+
partitionedTraits[0] = extractFullyQualifiedNames(partitionedTraits[0], imports);
8084
}
85+
const [unfeaturedTraits, featuredTraits] = partitionedTraits;
8186

8287
// Render the trait lines.
8388
const traitLines: string[] = [
8489
...(unfeaturedTraits.length > 0 ? [`#[derive(${unfeaturedTraits.join(', ')})]\n`] : []),
8590
...Object.entries(featuredTraits).map(([feature, traits]) => {
86-
return `#[cfg(feature = "${feature}", derive(${traits.join(', ')}))]\n`;
91+
return `#[cfg_attr(feature = "${feature}", derive(${traits.join(', ')}))]\n`;
8792
}),
8893
];
8994

0 commit comments

Comments
 (0)