Skip to content

Commit 136ea81

Browse files
committed
remove index name in rust
1 parent 32e57d9 commit 136ea81

4 files changed

Lines changed: 55 additions & 58 deletions

File tree

crates/bindings-macro/src/table.rs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,6 @@ impl ScheduledArg {
169169
impl IndexArg {
170170
fn parse_meta(meta: ParseNestedMeta) -> syn::Result<Self> {
171171
let mut accessor = None;
172-
let mut _name = None;
173172
let mut algo = None;
174173

175174
meta.parse_nested_meta(|meta| {
@@ -178,11 +177,6 @@ impl IndexArg {
178177
check_duplicate(&accessor, &meta)?;
179178
accessor = Some(meta.value()?.parse()?);
180179
}
181-
sym::name => {
182-
check_duplicate(&_name, &meta)?;
183-
let litstr: LitStr = meta.value()?.parse()?;
184-
_name = Some(litstr);
185-
}
186180
sym::btree => {
187181
check_duplicate_msg(&algo, &meta, "index algorithm specified twice")?;
188182
algo = Some(Self::parse_btree(meta)?);
@@ -266,7 +260,6 @@ impl IndexArg {
266260
/// Parses an inline `#[index(btree)]`, `#[index(hash)]`, or `#[index(direct)]` attribute on a field.
267261
fn parse_index_attr(field: &Ident, attr: &syn::Attribute) -> syn::Result<Self> {
268262
let mut kind = None;
269-
let mut _name: Option<LitStr> = None;
270263
attr.parse_nested_meta(|meta| {
271264
match_meta!(match meta {
272265
sym::btree => {
@@ -285,10 +278,6 @@ impl IndexArg {
285278
check_duplicate_msg(&kind, &meta, "index type specified twice")?;
286279
kind = Some(IndexType::Direct { column: field.clone() })
287280
}
288-
sym::name => {
289-
check_duplicate(&_name, &meta)?;
290-
_name = Some(meta.value()?.parse()?);
291-
}
292281
});
293282
Ok(())
294283
})?;
@@ -1039,9 +1028,11 @@ pub(crate) fn table_impl(mut args: TableArgs, item: &syn::DeriveInput) -> syn::R
10391028
let trait_def = quote_spanned! {table_ident.span()=>
10401029
#[allow(non_camel_case_types, dead_code)]
10411030
#vis trait #table_ident {
1031+
#[allow(non_camel_case_types, dead_code)]
10421032
fn #table_ident(&self) -> &#tablehandle_ident;
10431033
}
10441034
impl #table_ident for spacetimedb::Local {
1035+
#[allow(non_camel_case_types, dead_code)]
10451036
fn #table_ident(&self) -> &#tablehandle_ident {
10461037
&#tablehandle_ident {}
10471038
}
@@ -1051,6 +1042,7 @@ pub(crate) fn table_impl(mut args: TableArgs, item: &syn::DeriveInput) -> syn::R
10511042
let trait_def_view = quote_spanned! {table_ident.span()=>
10521043
#[allow(non_camel_case_types, dead_code)]
10531044
#vis trait #view_trait_ident {
1045+
#[allow(non_camel_case_types, dead_code)]
10541046
fn #table_ident(&self) -> &#viewhandle_ident;
10551047
}
10561048
impl #view_trait_ident for spacetimedb::LocalReadOnly {

crates/bindings-typescript/src/lib/schema.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ export class ModuleContext {
187187
value: module.rowLevelSecurity,
188188
}
189189
);
190+
push(module.explicitNames && { tag: 'ExplicitNames', value: module.explicitNames });
190191
return { sections };
191192
}
192193

@@ -248,9 +249,9 @@ export class ModuleContext {
248249

249250
#registerCompoundTypeRecursively<
250251
T extends
251-
| SumBuilder<VariantsObj>
252-
| ProductBuilder<ElementsObj>
253-
| RowBuilder<RowObj>,
252+
| SumBuilder<VariantsObj>
253+
| ProductBuilder<ElementsObj>
254+
| RowBuilder<RowObj>,
254255
>(typeBuilder: T): RefBuilder<Infer<T>, InferSpacetimeTypeOfTypeBuilder<T>> {
255256
const ty = typeBuilder.algebraicType;
256257
// NB! You must ensure that all TypeBuilder passed into this function
@@ -273,13 +274,13 @@ export class ModuleContext {
273274
const newTy =
274275
typeBuilder instanceof RowBuilder || typeBuilder instanceof ProductBuilder
275276
? ({
276-
tag: 'Product',
277-
value: { elements: [] },
278-
} as AlgebraicTypeVariants.Product)
277+
tag: 'Product',
278+
value: { elements: [] },
279+
} as AlgebraicTypeVariants.Product)
279280
: ({
280-
tag: 'Sum',
281-
value: { variants: [] },
282-
} as AlgebraicTypeVariants.Sum);
281+
tag: 'Sum',
282+
value: { variants: [] },
283+
} as AlgebraicTypeVariants.Sum);
283284

284285
r = new RefBuilder(this.#moduleDef.typespace.types.length);
285286
this.#moduleDef.typespace.types.push(newTy);

crates/bindings-typescript/src/lib/table.ts

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -44,26 +44,26 @@ type HasInvalidColumn<Row extends RowObj> =
4444
// this checks if Row exactly equals RowObj - if it does, we can't
4545
// do type-system-level checking, so just let it pass
4646
(<G>() => G extends Row ? 1 : 2) extends <G>() => G extends RowObj ? 1 : 2
47-
? false
48-
: {
49-
[K in keyof Row]: Row[K] extends ColumnBuilder<any, any, infer M>
50-
? ValidateColumnMetadata<M> extends InvalidColumnMetadata<any>
51-
? true
52-
: false
53-
: false;
54-
}[keyof Row] extends false
55-
? false
56-
: true;
47+
? false
48+
: {
49+
[K in keyof Row]: Row[K] extends ColumnBuilder<any, any, infer M>
50+
? ValidateColumnMetadata<M> extends InvalidColumnMetadata<any>
51+
? true
52+
: false
53+
: false;
54+
}[keyof Row] extends false
55+
? false
56+
: true;
5757

5858
/**
5959
* Extract the names of columns that have invalid metadata.
6060
*/
6161
type InvalidColumnNames<Row extends RowObj> = {
6262
[K in keyof Row]: Row[K] extends ColumnBuilder<any, any, infer M>
63-
? ValidateColumnMetadata<M> extends InvalidColumnMetadata<any>
64-
? K & string
65-
: never
66-
: never;
63+
? ValidateColumnMetadata<M> extends InvalidColumnMetadata<any>
64+
? K & string
65+
: never
66+
: never;
6767
}[keyof Row];
6868

6969
/**
@@ -90,8 +90,8 @@ export type CoerceColumn<
9090
Col extends TypeBuilder<any, any> | ColumnBuilder<any, any, any>,
9191
> =
9292
Col extends TypeBuilder<infer T, infer U>
93-
? ColumnBuilder<T, U, ColumnMetadata<any>>
94-
: Col;
93+
? ColumnBuilder<T, U, ColumnMetadata<any>>
94+
: Col;
9595

9696
/**
9797
* Coerces a RowObj where TypeBuilders are replaced with ColumnBuilders
@@ -127,10 +127,10 @@ export type TableIndexes<TableDef extends UntypedTableDef> = {
127127
K,
128128
TableDef['columns'][K]['columnMetadata']
129129
> extends never
130-
? never
131-
: K]: ColumnIndex<K, TableDef['columns'][K]['columnMetadata']>;
130+
? never
131+
: K]: ColumnIndex<K, TableDef['columns'][K]['columnMetadata']>;
132132
} & {
133-
[I in TableDef['indexes'][number] as I['accessor'] & {}]: TableIndexFromDef<
133+
[I in TableDef['indexes'][number]as I['accessor'] & {}]: TableIndexFromDef<
134134
TableDef,
135135
I
136136
>;
@@ -143,21 +143,21 @@ type TableIndexFromDef<
143143
NormalizeIndexColumns<TableDef, I> extends infer Cols extends ReadonlyArray<
144144
keyof TableDef['columns'] & string
145145
>
146-
? {
147-
name: I['accessor'];
148-
unique: AllUnique<TableDef, Cols>;
149-
algorithm: Lowercase<I['algorithm']>;
150-
columns: Cols;
151-
}
152-
: never;
146+
? {
147+
name: I['accessor'];
148+
unique: AllUnique<TableDef, Cols>;
149+
algorithm: Lowercase<I['algorithm']>;
150+
columns: Cols;
151+
}
152+
: never;
153153

154154
type NormalizeIndexColumns<
155155
TableDef extends UntypedTableDef,
156156
I extends IndexOpts<keyof TableDef['columns'] & string>,
157157
> =
158158
IndexColumns<I> extends ReadonlyArray<keyof TableDef['columns'] & string>
159-
? IndexColumns<I>
160-
: never;
159+
? IndexColumns<I>
160+
: never;
161161

162162
/**
163163
* Options for configuring a database table.
@@ -175,10 +175,10 @@ export type TableOpts<Row extends RowObj> = {
175175
scheduled?: () =>
176176
| ReducerExport<any, { [k: string]: RowBuilder<RowObj> }>
177177
| ProcedureExport<
178-
any,
179-
{ [k: string]: RowBuilder<RowObj> },
180-
ReturnType<typeof t.unit>
181-
>;
178+
any,
179+
{ [k: string]: RowBuilder<RowObj> },
180+
ReturnType<typeof t.unit>
181+
>;
182182
};
183183

184184
/**
@@ -212,7 +212,7 @@ export type Table<TableDef extends UntypedTableDef> = Prettify<
212212

213213
export type ReadonlyTable<TableDef extends UntypedTableDef> = Prettify<
214214
ReadonlyTableMethods<TableDef> &
215-
ReadonlyIndexes<TableDef, TableIndexes<TableDef>>
215+
ReadonlyIndexes<TableDef, TableIndexes<TableDef>>
216216
>;
217217

218218
export interface ReadonlyTableMethods<TableDef extends UntypedTableDef> {
@@ -290,10 +290,10 @@ export function table<Row extends RowObj, const Opts extends TableOpts<Row>>(
290290
// See the JSDoc above for details on how to fix this error.
291291
..._: HasInvalidColumn<Row> extends true
292292
? [
293-
error: ERROR_default_cannot_be_combined_with_primaryKey_unique_or_autoInc<
294-
InvalidColumnNames<Row>
295-
>,
296-
]
293+
error: ERROR_default_cannot_be_combined_with_primaryKey_unique_or_autoInc<
294+
InvalidColumnNames<Row>
295+
>,
296+
]
297297
: []
298298
): TableSchema<CoerceRow<Row>, OptsIndices<Opts>> {
299299
const {

crates/schema/tests/ensure_same_schema.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,11 @@ fn ensure_same_schema_rust_csharp_benchmarks() {
101101
#[test]
102102
#[serial]
103103
fn test_all_schema_names() {
104-
let module_def: ModuleDef = get_normalized_schema("module-test-ts");
104+
let module_def: ModuleDef = get_normalized_schema("module-test");
105+
106+
println!("Types {:?}", module_def.types().collect::<Vec<_>>());
107+
108+
println!("Types space {:?}", module_def.typespace());
105109

106110
// Test Tables
107111
let table_names = ["test_d", "person"];

0 commit comments

Comments
 (0)