Module: JsonStructure::FFI

Extended by:
FFI::Library
Defined in:
lib/jsonstructure/ffi.rb

Overview

Low-level FFI bindings to the C library

Defined Under Namespace

Classes: JSError, JSInstanceValidator, JSLocation, JSResult, JSSchemaValidator

Constant Summary collapse

JS_SEVERITY_ERROR =

js_severity_t enum values

0
JS_SEVERITY_WARNING =
1
JS_SEVERITY_INFO =
2

Class Method Summary collapse

Class Method Details

.js_validate_instance(instance_json, schema_json, result_ptr) ⇒ Object



143
144
145
146
147
# File 'lib/jsonstructure/ffi.rb', line 143

def self.js_validate_instance(instance_json, schema_json, result_ptr)
  validator_ptr = ::FFI::MemoryPointer.new(JSInstanceValidator.size)
  js_instance_validator_init(validator_ptr)
  js_instance_validate_strings(validator_ptr, instance_json, schema_json, result_ptr)
end

.js_validate_schema(schema_json, result_ptr) ⇒ Object

Convenience wrappers (since the C inline functions aren’t exported)



137
138
139
140
141
# File 'lib/jsonstructure/ffi.rb', line 137

def self.js_validate_schema(schema_json, result_ptr)
  validator_ptr = ::FFI::MemoryPointer.new(JSSchemaValidator.size)
  js_schema_validator_init(validator_ptr)
  js_schema_validate_string(validator_ptr, schema_json, result_ptr)
end