Sha256: 01ea49ed8c8012ac505ae2855b935cea7184a53ab6cb276042b72a9e64027ca9

Contents?: true

Size: 719 Bytes

Versions: 7

Compression:

Stored size: 719 Bytes

Contents

#pragma once

#include <ruby.h>

#include "active_record.h"
#include "common.h"
#include "plain.h"
#include "hash.h"

enum ObjectType { Unknown = 0, ActiveRecord = 1, Plain = 2, Hash = 3 };

typedef struct _AttributesWriter {
  enum ObjectType object_type;

  void (*write_attributes)(VALUE object, VALUE attributes,
                           EachAttributeFunc func, VALUE context);
} AttributesWriter;

/**
 * Infers the attributes writer from the object type
 */
AttributesWriter create_attributes_writer(VALUE object);

/**
 * Creates empty writer
 * Useful when the writer is not known, and you need init something
 */
AttributesWriter create_empty_attributes_writer();

void init_attributes_writer(VALUE mPanko);

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
panko_serializer-0.7.6 ext/panko_serializer/attributes_writer/attributes_writer.h
panko_serializer-0.7.5 ext/panko_serializer/attributes_writer/attributes_writer.h
panko_serializer-0.7.4 ext/panko_serializer/attributes_writer/attributes_writer.h
panko_serializer-0.7.3 ext/panko_serializer/attributes_writer/attributes_writer.h
panko_serializer-0.7.2 ext/panko_serializer/attributes_writer/attributes_writer.h
panko_serializer-0.7.1 ext/panko_serializer/attributes_writer/attributes_writer.h
panko_serializer-0.7.0 ext/panko_serializer/attributes_writer/attributes_writer.h