@flux-control/modbus-schema
    Preparing search index...

    Type Alias ParamEntry<S, M>

    A decode/encode/format bundle over a concrete schema S.

    Value and wire types are read straight off the schema via S['Type'] and S['Encoded'], so a branded or literal-union domain stays visible to callers.

    type ParamEntry<
        S extends Schema.Codec<any, any>,
        M extends RegisterMeta = RegisterMeta,
    > = {
        decode: (raw: unknown) => Effect.Effect<S["Type"], Schema.SchemaError>;
        decodeSync: (raw: unknown) => S["Type"];
        description: string;
        encode: (
            value: S["Type"],
        ) => Effect.Effect<S["Encoded"], Schema.SchemaError>;
        encodeSync: (value: S["Type"]) => S["Encoded"];
        formatted: (value: S["Type"]) => string;
        meta: M;
        register: number;
        schema: S;
    }

    Type Parameters

    Index
    decode: (raw: unknown) => Effect.Effect<S["Type"], Schema.SchemaError>

    Decode untrusted input and validate it against the schema.

    decodeSync: (raw: unknown) => S["Type"]

    Decode and validate untrusted input synchronously; throws on validation failure.

    description: string

    Formatted register description. The schema carries the same text as its description annotation.

    encode: (value: S["Type"]) => Effect.Effect<S["Encoded"], Schema.SchemaError>

    Encode a domain value; schema validation failures use the error channel.

    encodeSync: (value: S["Type"]) => S["Encoded"]

    Encode a domain value synchronously; throws on schema validation failure.

    formatted: (value: S["Type"]) => string

    Format a domain value as text.

    meta: M

    Register metadata that the factory received.

    The type keeps the literal values of a metadata literal, so an editor shows the name, unit, and range of the register on hover.

    register: number

    Register address that the factory received.

    schema: S