Sha256: bd897aaaf1895faeff2677bb57d330d074e4f037156479cbd919a534950b8e11

Contents?: true

Size: 747 Bytes

Versions: 4

Compression:

Stored size: 747 Bytes

Contents

#pragma once

#include <ruby.h>

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

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

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 subject type
 */
AttributesWriter create_attributes_writer(VALUE subject);

/**
 * 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

4 entries across 4 versions & 1 rubygems

Version Path
panko_serializer-0.5.9 ext/panko_serializer/attributes_writer/attributes_writer.h
panko_serializer-0.5.8 ext/panko_serializer/attributes_writer/attributes_writer.h
panko_serializer-0.5.7 ext/panko_serializer/attributes_writer/attributes_writer.h
panko_serializer-0.5.6 ext/panko_serializer/attributes_writer/attributes_writer.h