Sha256: 72f881fc9b2e022af5a31bc2c23dab34599bcb629b03355d9f819326a419d76c

Contents?: true

Size: 1.49 KB

Versions: 3

Compression:

Stored size: 1.49 KB

Contents

# frozen_string_literal: true

require 'ffi'
require_relative 'time_spec'

module FFI
  class Stat
    # Native (and naked) stat from stat.h
    # @!visibility private
    class Native < Struct
      case Platform::NAME

      when 'x86_64-linux'
        layout :st_dev,     :dev_t,
               :st_ino,     :ino_t,
               :st_nlink,   :nlink_t,
               :st_mode,    :mode_t,
               :st_uid,     :uid_t,
               :st_gid,     :gid_t,
               :__pad0,     :int,
               :st_rdev,    :dev_t,
               :st_size,    :off_t,
               :st_blksize, :blksize_t,
               :st_blocks,  :blkcnt_t,
               :st_atimespec, TimeSpec,
               :st_mtimespec, TimeSpec,
               :st_ctimespec, TimeSpec

      when 'x65_64-darwin'
        layout :st_dev,       :dev_t,
               :st_ino,       :uint32,
               :st_mode,      :mode_t,
               :st_nlink,     :nlink_t,
               :st_uid,       :uid_t,
               :st_gid,       :gid_t,
               :st_rdev,      :dev_t,
               :st_atimespec, TimeSpec,
               :st_mtimespec, TimeSpec,
               :st_ctimespec, TimeSpec,
               :st_size,      :off_t,
               :st_blocks,    :blkcnt_t,
               :st_blksize,   :blksize_t,
               :st_flags,     :uint32,
               :st_gen,       :uint32
      else
        raise NotImplementedError, "FFI::Stat not implemented for FFI::Platform #{Platform::NAME}"
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ffi-libfuse-0.0.1.rctest12 lib/ffi/stat/native.rb
ffi-libfuse-0.0.1.rctest11 lib/ffi/stat/native.rb
ffi-libfuse-0.0.1.pre lib/ffi/stat/native.rb