]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/specialized-vectors/specialized-vectors.factor
specialized-arrays, specialized-vectors: add direct-slice, direct-head, direct-tail...
[factor.git] / basis / specialized-vectors / specialized-vectors.factor
index 5c47a9e879c9ff28f0c0402dfcc34f18fe030cc3..f96aea6815a7fae21f98d7b614f2b7ed84833dc8 100644 (file)
@@ -6,6 +6,7 @@ parser prettyprint.custom sequences specialized-arrays
 specialized-arrays.private strings vocabs vocabs.parser
 vocabs.generated fry make ;
 FROM: sequences.private => nth-unsafe ;
+FROM: specialized-arrays.private => nth-c-ptr direct-like ;
 QUALIFIED: vectors.functor
 IN: specialized-vectors
 
@@ -17,6 +18,7 @@ V   DEFINES-CLASS ${T}-vector
 
 A   IS      ${T}-array
 <A> IS      <${A}>
+<direct-A> IS <direct-${A}>
 
 >V  DEFERS >${V}
 V{  DEFINES ${V}{
@@ -38,6 +40,9 @@ M: V pprint* pprint-object ;
 M: V >c-ptr underlying>> underlying>> ; inline
 M: V byte-length [ length ] [ element-size ] bi * ; inline
 
+M: V direct-like drop <direct-A> ; inline
+M: V nth-c-ptr underlying>> nth-c-ptr ; inline
+
 SYNTAX: V{ \ } [ >V ] parse-literal ;
 
 INSTANCE: V growable