Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

Reply

14 exports Since v1.0.0 Source

Guards

Since v1.0.0

Signature

declare function isReply(u: unknown): u is Reply<Any>

Models

Since v1.0.0

Signature

declare class Chunk<R extends Rpc.Any> extends Readonly<{
readonly id: Snowflake;
readonly requestId: Snowflake;
readonly sequence: number;
readonly values: readonly [SuccessChunk<R>, SuccessChunk<R>];
}> & {
readonly _tag: "Chunk";
} & Pipeable {
constructor<R extends Any>(args: {
readonly id: Snowflake;
readonly requestId: Snowflake;
readonly sequence: number;
readonly values: readonly [SuccessChunk<R>, SuccessChunk<R>];
});
readonly [TypeId]: symbol;
static readonly schemaFromSelf: Schema<Chunk<never>>;
withRequestId(requestId: Snowflake): Chunk<R>;
static emptyFrom(requestId: Snowflake): Chunk<Any>;
static schema<R extends Any>(rpc: R): any;
}

ChunkEncoded

interface
Since v1.0.0

Signature

interface ChunkEncoded<R extends Rpc.Any> {
readonly _tag: "Chunk";
readonly id: string;
readonly requestId: string;
readonly sequence: number;
readonly values: readonly [SuccessChunkEncoded<R>, SuccessChunkEncoded<R>];
}

Reply

type
Since v1.0.0

Signature

type Reply<R extends Rpc.Any> = WithExit<R> | Chunk<R>
Since v1.0.0

Signature

type ReplyEncoded<R extends Rpc.Any> = WithExitEncoded<R> | ChunkEncoded<R>

Signature

declare class ReplyWithContext<R extends Rpc.Any> extends Readonly<{
readonly context: Context<Context<R>>;
readonly reply: Reply<R>;
readonly rpc: R;
}> & {
readonly _tag: "ReplyWithContext";
} & Pipeable {
constructor<R extends Any>(args: {
readonly context: Context<Context<R>>;
readonly reply: Reply<R>;
readonly rpc: R;
});
static fromDefect(options: {
readonly defect: unknown;
readonly id: Snowflake;
readonly requestId: Snowflake;
}): ReplyWithContext<any>;
static interrupt(options: {
readonly id: Snowflake;
readonly requestId: Snowflake;
}): ReplyWithContext<any>;
}
Since v1.0.0

Signature

declare class WithExit<R extends Rpc.Any> extends Readonly<{
readonly exit: Exit<R>;
readonly id: Snowflake;
readonly requestId: Snowflake;
}> & {
readonly _tag: "WithExit";
} & Pipeable {
constructor<R extends Any>(args: {
readonly exit: Exit<R>;
readonly id: Snowflake;
readonly requestId: Snowflake;
});
readonly [TypeId]: symbol;
withRequestId(requestId: Snowflake): WithExit<R>;
static schema<R extends Any>(rpc: R): any;
}
Since v1.0.0

Signature

interface WithExitEncoded<R extends Rpc.Any> {
readonly _tag: "WithExit";
readonly exit: ExitEncoded<R>;
readonly id: string;
readonly requestId: string;
}

Schemas

Since v1.0.0

Signature

declare const Encoded: Union<readonly Array<Constraint>>
Since v1.0.0

Signature

declare const Reply: <R extends Any>(rpc: R) => any

Serialization / Deserialization

Signature

declare function serialize<R extends Any>(self: ReplyWithContext<R>): Effect<ReplyEncoded<R>, MalformedMessage>

Signature

declare function serializeLastReceived<R extends Any>(self: OutgoingRequest<R>): Effect<Option<ReplyEncoded<R>>, MalformedMessage>

Type Ids

Since v1.0.0

Signature

declare const TypeId: unique symbol
Since v1.0.0

Signature

type TypeId = typeof TypeId