Sha256: 5eee45bafb151cbb36b7c0fce3f9ef788236e645bbc256a969e63e75afa19253

Contents?: true

Size: 986 Bytes

Versions: 38

Compression:

Stored size: 986 Bytes

Contents

/* code.h
 * 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

38 entries across 38 versions & 1 rubygems

Version Path
oj-3.7.5 ext/oj/code.h
oj-3.7.4 ext/oj/code.h
oj-3.7.3 ext/oj/code.h
oj-3.7.2 ext/oj/code.h
oj-3.7.1 ext/oj/code.h
oj-3.7.0 ext/oj/code.h
oj-3.6.13 ext/oj/code.h
oj-3.6.12 ext/oj/code.h
oj-3.6.11 ext/oj/code.h
oj-3.6.10 ext/oj/code.h
oj-3.6.9 ext/oj/code.h
oj-3.6.8 ext/oj/code.h
oj-3.6.7 ext/oj/code.h
oj-3.6.6 ext/oj/code.h
oj-3.6.5 ext/oj/code.h
oj-3.6.4 ext/oj/code.h
oj-3.6.3 ext/oj/code.h
oj-3.6.2 ext/oj/code.h
oj-3.6.0 ext/oj/code.h
oj-3.5.1 ext/oj/code.h