UniqueSymbol<sym>Creates a schema for a specific symbol. Only that exact symbol satisfies the schema.
Example (Defining a specific symbol)
import { Schema } from "effect"
const mySymbol = Symbol.for("mySymbol")
const schema = Schema.UniqueSymbol(mySymbol)export interface interface UniqueSymbol<sym extends symbol>Creates a schema for a specific symbol. Only that exact symbol satisfies the schema.
Example (Defining a specific symbol)
import { Schema } from "effect"
const mySymbol = Symbol.for("mySymbol")
const schema = Schema.UniqueSymbol(mySymbol)
Type-level representation returned by
UniqueSymbol
.
UniqueSymbol<function (type parameter) sym in UniqueSymbol<sym extends symbol>sym extends symbol>
extends interface Bottom<out T, out E, out RD, out RE, out Ast extends SchemaAST.AST, out Rebuild extends Top, out TypeMakeIn = T, out Iso = T, in out TypeParameters extends ReadonlyArray<Constraint> = readonly [], out TypeMake = TypeMakeIn, out TypeMutability extends Mutability = "readonly", out TypeOptionality extends Optionality = "required", out TypeConstructorDefault extends ConstructorDefault = "no-default", out EncodedMutability extends Mutability = "readonly", out EncodedOptionality extends Optionality = "required">The fully-parameterized base interface for all schemas. Exposes all 14 type
parameters controlling type inference, mutability, optionality, services, and
transformation behavior.
When to use
Use when you are writing advanced generic schema utilities or performing
schema introspection.
Bottom<function (type parameter) sym in UniqueSymbol<sym extends symbol>sym, function (type parameter) sym in UniqueSymbol<sym extends symbol>sym, never, never, import SchemaASTSchemaAST.class UniqueSymbolclass UniqueSymbol {
_tag: 'UniqueSymbol';
symbol: symbol;
getParser: () => SchemaParser.Parser;
toCodecStringTree: () => AST;
getExpected: () => string;
annotations: Schema.Annotations.Annotations | undefined;
checks: Checks | undefined;
encoding: Encoding | undefined;
context: Context | undefined;
toString: () => string;
}
AST node matching a specific unique symbol value.
Details
Parsing succeeds only when the input is reference-equal to the stored
symbol.
UniqueSymbol, interface UniqueSymbol<sym extends symbol>Creates a schema for a specific symbol. Only that exact symbol satisfies the schema.
Example (Defining a specific symbol)
import { Schema } from "effect"
const mySymbol = Symbol.for("mySymbol")
const schema = Schema.UniqueSymbol(mySymbol)
Type-level representation returned by
UniqueSymbol
.
UniqueSymbol<function (type parameter) sym in UniqueSymbol<sym extends symbol>sym>>
{}
/**
* Creates a schema for a specific symbol. Only that exact symbol satisfies the schema.
*
* **Example** (Defining a specific symbol)
*
* ```ts
* import { Schema } from "effect"
*
* const mySymbol = Symbol.for("mySymbol")
* const schema = Schema.UniqueSymbol(mySymbol)
* ```
*
* @see {@link Symbol} for a schema that accepts any symbol.
* @category constructors
* @since 4.0.0
*/
export function function UniqueSymbol<sym extends symbol>(
symbol: sym
): UniqueSymbol<sym>
Creates a schema for a specific symbol. Only that exact symbol satisfies the schema.
Example (Defining a specific symbol)
import { Schema } from "effect"
const mySymbol = Symbol.for("mySymbol")
const schema = Schema.UniqueSymbol(mySymbol)
UniqueSymbol<const function (type parameter) sym in UniqueSymbol<const sym extends symbol>(symbol: sym): UniqueSymbol<sym>sym extends symbol>(symbol: const sym extends symbolsymbol: function (type parameter) sym in UniqueSymbol<const sym extends symbol>(symbol: sym): UniqueSymbol<sym>sym): interface UniqueSymbol<sym extends symbol>Creates a schema for a specific symbol. Only that exact symbol satisfies the schema.
Example (Defining a specific symbol)
import { Schema } from "effect"
const mySymbol = Symbol.for("mySymbol")
const schema = Schema.UniqueSymbol(mySymbol)
Type-level representation returned by
UniqueSymbol
.
UniqueSymbol<function (type parameter) sym in UniqueSymbol<const sym extends symbol>(symbol: sym): UniqueSymbol<sym>sym> {
return const make: <S extends Constraint>(
ast: S["ast"],
options?: object
) => S
Creates a schema from an AST (Abstract Syntax Tree) node.
Details
This is the fundamental constructor for all schemas in the Effect Schema
library. It takes an AST node and wraps it in a fully-typed schema that
preserves all type information and provides the complete schema API.
The make function is used internally to create all primitive schemas like
String, Number, Boolean, etc., as well as more complex schemas. It's
the bridge between the untyped AST representation and the strongly-typed
schema.
make(new import SchemaASTSchemaAST.constructor UniqueSymbol(symbol: symbol, annotations?: Annotations.Annotations, checks?: SchemaAST.Checks, encoding?: SchemaAST.Encoding, context?: SchemaAST.Context): SchemaAST.UniqueSymbolAST node matching a specific unique symbol value.
Details
Parsing succeeds only when the input is reference-equal to the stored
symbol.
UniqueSymbol(symbol: const sym extends symbolsymbol))
}