@foxglove/rosmsg-serialization
Version:
ROS1 (Robot Operating System) message serialization, for reading and writing bags and network messages
48 lines • 1.8 kB
TypeScript
export declare const fixedSizeTypes: Map<"bool" | "int8" | "uint8" | "int16" | "uint16" | "int32" | "uint32" | "int64" | "uint64" | "float32" | "float64" | "time" | "duration", 2 | 1 | 4 | 8>;
export type FixedSizeTypes = Parameters<typeof fixedSizeTypes.get>[0];
type BuiltinTypeMap = {
bool: boolean;
int8: number;
uint8: number;
int16: number;
uint16: number;
int32: number;
uint32: number;
int64: bigint;
uint64: bigint;
float32: number;
float64: number;
time: {
sec: number;
nsec: number;
};
duration: {
sec: number;
nsec: number;
};
};
type BuiltinArrayTypeMap = {
int8: Int8Array;
uint8: Uint8Array;
int16: Int16Array;
uint16: Uint16Array;
int32: Int32Array;
uint32: Uint32Array;
int64: BigInt64Array;
uint64: BigUint64Array;
float32: Float32Array;
float64: Float64Array;
};
type BuiltinTypes = keyof BuiltinTypeMap & FixedSizeTypes;
type BuiltinReaders = {
[K in BuiltinTypes]: (view: DataView, offset: number) => BuiltinTypeMap[K];
} & {
[K in BuiltinTypes as `${K}Array`]: (view: DataView, offset: number, len: number) => K extends keyof BuiltinArrayTypeMap ? BuiltinArrayTypeMap[K] : BuiltinTypeMap[K][];
};
export declare const deserializers: BuiltinReaders & {
string: (view: DataView, offset: number) => string;
fixedArray: (view: DataView, offset: number, len: number, elementDeser: (view: DataView, offset: number) => unknown, elementSize: (view: DataView, offset: number) => number) => unknown[];
dynamicArray: (view: DataView, offset: number, elementDeser: (view: DataView, offset: number) => unknown, elementSize: (view: DataView, offset: number) => number) => unknown[];
};
export {};
//# sourceMappingURL=BuiltinDeserialize.d.ts.map