added tostring callback
[rrq/rrqmisc.git] / vector / integeritem.c
index 0ad2302807ed3c046bd449bef3fa37bce6575dce..ae4db929ae95c4bd358ac516e111864641bb38fe 100644 (file)
@@ -9,7 +9,7 @@
  * vector placement is made at the first empty or hole slot following
  * the hashcode index.
  */
-static unsigned long integeritem_hashcode(itemkeyfun *this,void *key) {
+static unsigned long integeritem_hashcode(void *this,void *key) {
     return (unsigned long) key;
 }
 
@@ -17,7 +17,7 @@ static unsigned long integeritem_hashcode(itemkeyfun *this,void *key) {
  * This callback function determines whether an item has a
  * given key or not.
  */
-static int integeritem_haskey(itemkeyfun *this,void *item,void *key) {
+static int integeritem_haskey(void *this,void *item,void *key) {
     return item == key;
 }
 
@@ -25,7 +25,7 @@ static int integeritem_haskey(itemkeyfun *this,void *item,void *key) {
  * This callback function returns the key of an item by considering
  * the arity and schema.
  */
-static void *integeritem_itemkey(itemkeyfun *this,void *item) {
+static void *integeritem_itemkey(void *this,void *item) {
     return item;
 }
 
@@ -33,12 +33,21 @@ static void *integeritem_itemkey(itemkeyfun *this,void *item) {
  * This callback function handles a key obtained from the itemkey
  * callback function to reclaim temporary allocation.
  */
-static void integeritem_releasekey(itemkeyfun *this,void *key) {
+static void integeritem_releasekey(void *this,void *key) {
+}
+
+/**
+ * This callback function writes a representation of an item into
+ * a character buffer.
+ */
+static int integeritem_tostring(void *this,void *item,char *buffer,int limit) {
+    return snprintf( buffer, limit, "%lld", (long long) item );
 }
 
 itemkeyfun integeritem = {
     .hashcode = integeritem_hashcode,
     .haskey = integeritem_haskey,
     .itemkey = integeritem_itemkey,
-    .releasekey = integeritem_releasekey
+    .releasekey = integeritem_releasekey,
+    .tostring = integeritem_tostring
 };