Sha256: 3213fd40363ab89682d3a96b23d522c14d40850f0a04f9334d0fdc5b045bd6d9

Contents?: true

Size: 969 Bytes

Versions: 10

Compression:

Stored size: 969 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);

extern struct _Code	oj_compat_codes[];

#endif /* __OJ_CODE_H__ */

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
oj-3.1.0 ext/oj/code.h
oj-3.0.11 ext/oj/code.h
oj-3.0.10 ext/oj/code.h
oj-3.0.9 ext/oj/code.h
oj-3.0.8 ext/oj/code.h
oj-3.0.7 ext/oj/code.h
oj-3.0.6 ext/oj/code.h
oj-3.0.5 ext/oj/code.h
oj-3.0.4 ext/oj/code.h
oj-3.0.3 ext/oj/code.h