import type { Result } from '../../mod.js'; /** ## Serialize : 序列化 @explain 正反序列化恒等性 : `Serialize == `{@link DeSerialize}`` @example ```ts const can_serialize: Serialize & DeSerialize = { serialize: function (data: object): string { return JSON.stringify(data) }, deserialize: function (data: string): object { return JSON.parse(data) }, } // case : Serialize == DeSerialize ``` @catrgory Interface */ export interface Serialize { readonly serialize: (data: A) => B; readonly deserialize: (data: B) => A; } /** ## DeSerialize : 反序列化 @explain 正反序列化恒等性 : {@link Serialize}` == DeSerialize` @example ```ts const can_serialize: DeSerialize & Serialize = { serialize: function (data: object): string { return JSON.stringify(data) }, deserialize: function (data: string): object { return JSON.parse(data) }, } // case : DeSerialize == Serialize ``` @catrgory Interface */ export interface DeSerialize { readonly deserialize: (data: B) => A; readonly serialize: (data: A) => B; } /** ## MaybeSerialize : 可能会失败的序列化 @catrgory Interface */ export interface MaybeSerialize { readonly serialize: (data: A) => Result; readonly deserialize: (data: B) => Result; } /** ##MaybeSerialize : 可能会失败的反序列化 @catrgory Interface */ export interface MaybeDeSerialize { readonly deserialize: (data: B) => Result; readonly serialize: (data: A) => Result; } /** ## `implements_serialize` : duck type to judge Serialize type @category Interface */ export declare function implements_serialize(value: unknown): value is Serialize; //# sourceMappingURL=serialize.d.ts.map