Sha256: f16357183ad56ff3c7b5f2878b7c3ae69bc223a5260eba3ec6794653d553a23c

Contents?: true

Size: 957 Bytes

Versions: 8

Compression:

Stored size: 957 Bytes

Contents

// Copyright (c) 2017 Peter Ohler. All rights reserved.

#ifndef OJ_CODE_H
#define OJ_CODE_H

#include <ruby.h>

#include "oj.h"

typedef void	(*EncodeFunc)(VALUE obj, int depth, Out out);
typedef VALUE	(*DecodeFunc)(VALUE clas, VALUE args);

typedef struct _code {
    const char	*name;
    VALUE	clas;
    EncodeFunc	encode;
    DecodeFunc	decode;
    bool	active; // For compat mode.
} *Code;

// Used by encode functions.
typedef struct _attr {
    const char	*name;
    int		len;
    VALUE	value;
    long	num;
    VALUE	time;
} *Attr;

extern bool	oj_code_dump(Code codes, VALUE obj, int depth, Out out);
extern VALUE	oj_code_load(Code codes, VALUE clas, VALUE args);
extern void	oj_code_set_active(Code codes, VALUE clas, bool active);
extern bool	oj_code_has(Code codes, VALUE clas, bool encode);

extern void	oj_code_attrs(VALUE obj, Attr attrs, int depth, Out out, bool with_class);

extern struct _code	oj_compat_codes[];

#endif /* OJ_CODE_H */

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
oj-3.11.3 ext/oj/code.h
oj-3.11.2 ext/oj/code.h
oj-3.11.1 ext/oj/code.h
oj-3.11.0 ext/oj/code.h
oj-3.10.18 ext/oj/code.h
oj-3.10.17 ext/oj/code.h
oj-3.10.16 ext/oj/code.h
oj-3.10.15 ext/oj/code.h