UNPKG

gnablib

Version:

A lean, zero dependency library to provide a useful base for your project.

2 lines 1.47 kB
/*! Copyright 2023 the gnablib contributors MPL-1.1 */ import{FromBinResult as e}from"../../primitive/FromBinResult.js";import{Bin1 as n,Bin2 as r,Bin3 as t,Bin4ish as o}from"./Bin.js";import{Bool as w}from"./Bool.js";import{ColType as s}from"./ColType.js";import{DateTimeCol as i}from"./DateTime.js";import{Float4 as a,Float8 as c}from"./Float.js";import{Id2 as m,Id4 as u,Id8 as f}from"./Id.js";import{Int2 as p,Int4 as B,Int8 as j}from"./Int.js";import{Ref2 as l}from"./Ref.js";import{Utf81 as I,Utf82 as d,Utf83 as F,Utf84ish as T}from"./Utf8.js";export function cudColTypeFromBin(R,U=0){const b=R[U],k=!(128&~b),y=-129&b;switch(y){case s.Bin1:return new e(1,new n(k));case s.Bin2:return new e(1,new r(k));case s.Bin3:return new e(1,new t(k));case s.Bin4ish:return new e(1,new o(k));case s.Bool:return new e(1,new w(k));case s.DateTime:return new e(1,new i(k));case s.Float4:return new e(1,new a(k));case s.Float8:return new e(1,new c(k));case s.Id2:if(k)break;return new e(1,new m);case s.Id4:if(k)break;return new e(1,new u);case s.Id8:if(k)break;return new e(1,new f);case s.Int2:return new e(1,new p(k));case s.Int4:return new e(1,new B(k));case s.Int8:return new e(1,new j(k));case s.Ref2:case s.Ref4:case s.Ref8:return l.fromBinSub(y,k,1,R,U+1);case s.Utf81:return new e(1,new I(k));case s.Utf82:return new e(1,new d(k));case s.Utf83:return new e(1,new F(k));case s.Utf84ish:return new e(1,new T(k))}return new e(0,void 0,`cudColTypeFromBin unknown colType ${y}`)}