<commit_before>// Copyright 2015 <NAME>.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

#![allow(non_upper_case_globals)]
#![allow(unused_imports)]

#![feature(convert)]

#![feature(log_syntax)]
#![feature(trace_macros)]

extern crate libc;
extern crate llvm_sys;

use std::io;
use std::io::Write;

use libc::c_uint;

use llvm_sys::prelude::*;
use llvm_sys::core::*;

use core::{context, types};
use core::types::{Type, IntType, IntTypeCtor, FunctionType, FunctionTypeCtor, StructType, StructTypeCtor};

macro_rules! new_ref_type(
    ($ref_type:ident for $llvm_ref_type:ident implementing $($base_trait:ty),+) => (
        #[derive(Copy, Clone)]
        pub enum $ref_type {
            Rf($llvm_ref_type)
        }

        impl LLVMRef<$llvm_ref_type> for $ref_type {
            fn to_ref(&self) -> $llvm_ref_type {
                match *self {
                    $ref_type::Rf(rf) => rf
                }
            }
        }

        impl LLVMRefCtor<$llvm_ref_type> for $ref_type {
            unsafe fn from_ref(rf: $llvm_ref_type) -> $ref_type {
                $ref_type::Rf(rf)
            }
        }

        $(
            impl $base_trait for $ref_type {}
        )*<commit_msg>[lib] use proper new type in new_ref_type macro (tuple structure)<commit_after>// Copyright 2015 <NAME>.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

#![allow(non_upper_case_globals)]
#![allow(unused_imports)]

#![feature(convert)]

#![feature(log_syntax)]
#![feature(trace_macros)]

extern crate libc;
extern crate llvm_sys;

use std::io;
use std::io::Write;

use libc::c_uint;

use llvm_sys::prelude::*;
use llvm_sys::core::*;

use core::{context, types};
use core::types::{Type, IntType, IntTypeCtor, FunctionType, FunctionTypeCtor, StructType, StructTypeCtor};

macro_rules! new_ref_type(
    ($ref_type:ident for $llvm_ref_type:ident implementing $($base_trait:ty),+) => (
        #[derive(Copy, Clone)]
        pub struct $ref_type ($llvm_ref_type);

        impl LLVMRef<$llvm_ref_type> for $ref_type {
            fn to_ref(&self) -> $llvm_ref_type {
                self.0
            }
        }

        impl LLVMRefCtor<$llvm_ref_type> for $ref_type {
            unsafe fn from_ref(rf: $llvm_ref_type) -> $ref_type {
                $ref_type(rf)
            }
        }

        $(
            impl $base_trait for $ref_type {}
        )*
{'fraction_non_alphanumeric': 0.13956734124214934, 'fraction_numerical': 0.005931612002791347, 'mean_word_length': 2.8795669824086603, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 20, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5466518', 'n_tokens_mistral': 974, 'n_tokens_neox': 959, 'n_words': 222}