Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

62 changes: 60 additions & 2 deletions crates/bindings-typescript/src/lib/type_builders.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1568,7 +1568,9 @@ class SumBuilderImpl<Variants extends VariantsObj>
extends TypeBuilder<EnumType<Variants>, VariantsToSumType<Variants>>
implements
Defaultable<EnumType<Variants>, VariantsToSumType<Variants>>,
Nameable<EnumType<Variants>, VariantsToSumType<Variants>>
Nameable<EnumType<Variants>, VariantsToSumType<Variants>>,
Indexable<EnumType<Variants>, VariantsToSumType<Variants>>,
PrimaryKeyable<EnumType<Variants>, VariantsToSumType<Variants>>
{
readonly variants: Variants;
readonly typeName: string | undefined;
Expand Down Expand Up @@ -1673,6 +1675,33 @@ class SumBuilderImpl<Variants extends VariantsObj>
): SumColumnBuilder<Variants, SetField<DefaultMetadata, 'name', Name>> {
return new SumColumnBuilder(this, set(defaultMetadata, { name }));
}
index(): SumColumnBuilder<
Variants,
SetField<DefaultMetadata, 'indexType', 'btree'>
>;
index<N extends NonNullable<IndexTypes>>(
algorithm: N
): SumColumnBuilder<Variants, SetField<DefaultMetadata, 'indexType', N>>;
index(
algorithm: IndexTypes = 'btree'
): SumColumnBuilder<
Variants,
SetField<DefaultMetadata, 'indexType', IndexTypes>
> {
return new SumColumnBuilder(
this,
set(defaultMetadata, { indexType: algorithm })
);
}
primaryKey(): SumColumnBuilder<
Variants,
SetField<DefaultMetadata, 'isPrimaryKey', true>
> {
return new SumColumnBuilder(
this,
set(defaultMetadata, { isPrimaryKey: true })
);
}
}

export const SumBuilder: {
Expand Down Expand Up @@ -3273,7 +3302,9 @@ export class SumColumnBuilder<
extends ColumnBuilder<EnumType<Variants>, VariantsToSumType<Variants>, M>
implements
Defaultable<EnumType<Variants>, VariantsToSumType<Variants>>,
Nameable<EnumType<Variants>, VariantsToSumType<Variants>>
Nameable<EnumType<Variants>, VariantsToSumType<Variants>>,
Indexable<EnumType<Variants>, VariantsToSumType<Variants>>,
PrimaryKeyable<EnumType<Variants>, VariantsToSumType<Variants>>
{
default(
value: EnumType<Variants>
Expand All @@ -3294,6 +3325,33 @@ export class SumColumnBuilder<
set(this.columnMetadata, { name })
);
}
index(): SumColumnBuilder<
Variants,
SetField<DefaultMetadata, 'indexType', 'btree'>
>;
index<N extends NonNullable<IndexTypes>>(
algorithm: N
): SumColumnBuilder<Variants, SetField<DefaultMetadata, 'indexType', N>>;
index(
algorithm: IndexTypes = 'btree'
): SumColumnBuilder<
Variants,
SetField<DefaultMetadata, 'indexType', IndexTypes>
> {
return new SumColumnBuilder(
this.typeBuilder,
set(this.columnMetadata, { indexType: algorithm })
);
}
primaryKey(): SumColumnBuilder<
Variants,
SetField<DefaultMetadata, 'isPrimaryKey', true>
> {
return new SumColumnBuilder(
this.typeBuilder,
set(this.columnMetadata, { isPrimaryKey: true })
);
}
}

export class SimpleSumColumnBuilder<
Expand Down
16 changes: 8 additions & 8 deletions crates/bindings/src/http.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use crate::StdbRng;
#[cfg(feature = "unstable")]
use crate::{try_with_tx, with_tx, Timestamp, TxContext};
use bytes::Bytes;
#[cfg(all(feature = "rand", feature = "unstable"))]
#[cfg(all(feature = "rand08", feature = "unstable"))]
use rand08::RngCore;
#[cfg(feature = "unstable")]
use spacetimedb_lib::db::raw_def::v10::MethodOrAny;
Expand All @@ -22,10 +22,10 @@ use spacetimedb_lib::http as st_http;
use spacetimedb_lib::http::{character_is_acceptable_for_route_path, ACCEPTABLE_ROUTE_PATH_CHARS_HUMAN_DESCRIPTION};
#[cfg(feature = "unstable")]
use spacetimedb_lib::Identity;
#[cfg(all(feature = "unstable", feature = "rand"))]
#[cfg(all(feature = "unstable", feature = "rand08"))]
use spacetimedb_lib::Uuid;
use spacetimedb_lib::{bsatn, TimeDuration};
#[cfg(all(feature = "unstable", feature = "rand"))]
#[cfg(all(feature = "unstable", feature = "rand08"))]
use std::cell::Cell;
#[cfg(all(feature = "unstable", feature = "rand08"))]
use std::cell::OnceCell;
Expand Down Expand Up @@ -72,7 +72,7 @@ pub use spacetimedb_bindings_macro::http_handler as handler;

/// Register a [`Router`](struct@Router) to route HTTP requests to handlers.
///
/// This should annotate a function of no arguments which returns a [`Router`](struct@router).
/// This should annotate a function of no arguments which returns a [`Router`](struct@Router).
///
/// ```no_run
/// # use spacetimedb::http::{handler, router, Request, Response, Body, HandlerContext, Router};
Expand Down Expand Up @@ -109,7 +109,7 @@ pub struct HandlerContext {

/// A counter used for generating UUIDv7 values.
/// **Note:** must be 0..=u32::MAX
#[cfg(feature = "rand")]
#[cfg(feature = "rand08")]
pub(crate) counter_uuid: Cell<u32>,
}

Expand All @@ -121,7 +121,7 @@ impl HandlerContext {
http: HttpClient {},
#[cfg(feature = "rand08")]
rng: OnceCell::new(),
#[cfg(feature = "rand")]
#[cfg(feature = "rand08")]
counter_uuid: Cell::new(0),
}
}
Expand All @@ -148,15 +148,15 @@ impl HandlerContext {
}

/// Create a new random [`Uuid`] `v4` using the built-in RNG.
#[cfg(feature = "rand")]
#[cfg(feature = "rand08")]
pub fn new_uuid_v4(&self) -> anyhow::Result<Uuid> {
let mut bytes = [0u8; 16];
self.rng().try_fill_bytes(&mut bytes)?;
Ok(Uuid::from_random_bytes_v4(bytes))
}

/// Create a new sortable [`Uuid`] `v7` using the built-in RNG, counter and timestamp.
#[cfg(feature = "rand")]
#[cfg(feature = "rand08")]
pub fn new_uuid_v7(&self) -> anyhow::Result<Uuid> {
let mut random_bytes = [0u8; 4];
self.rng().try_fill_bytes(&mut random_bytes)?;
Expand Down
Loading
Loading