Skip to content

Instantly share code, notes, and snippets.

View codelynx's full-sized avatar

Kaz Yoshikawa codelynx

View GitHub Profile
@codelynx
codelynx / UnsafePointer Converter.swift
Created September 13, 2020 14:57
[swift] Unsafe Pointer conversion
//
// Swift UnsafePointer converter
// Kaz Yoshikawa
//
// These code demonstrates how to convert swift pointers to the other forms of pointers.
//
// Source:
// Swift の Array やら ArraySlice やらポインタの変換まとめ
// https://qiita.com/Satachito/items/4c39c9b06304e4d86660
//
@codelynx
codelynx / NSObject+class_copyPropertyList.swift
Last active March 21, 2024 08:22
Use class_copyPropertyList to extract properties from NSObject based object,
// source:
// https://stackoverflow.com/questions/24750186/i-cant-get-properties-of-a-class-using-swift-by-class-copypropertylist
import Foundation
extension NSObject {
func dictionaryRepresentation() -> [String: Any] {
@codelynx
codelynx / MTLTexture+Z.swift
Created December 28, 2016 14:58
Piece of Utility code to make CGImage from MTLTexture under (BGRA8Unorm)
//
// MTLTexture+Z.swift
// ZKit
//
// The MIT License (MIT)
//
// Copyright (c) 2016 Electricwoods LLC, Kaz Yoshikawa.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@codelynx
codelynx / NSTextField+Blurred.swift
Created March 8, 2024 21:58
NSSecureTextField alternative
//
// NSTextField+Blurred.swift
// ZKit
//
// The MIT License (MIT)
//
// Copyright (c) 2024 Electricwoods LLC, Kaz Yoshikawa.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@codelynx
codelynx / Runtime.swift
Last active March 6, 2024 08:48
[Swift] To retrieve classes at runtime which conforms to a protocol or to retrieve subclasses of a given class
//
// Runtime.swift
// Swift Runtime [Swift 4]
//
// The MIT License (MIT)
//
// Copyright (c) 2016 Electricwoods LLC, Kaz Yoshikawa.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
@codelynx
codelynx / Inspectables.swift
Created March 5, 2024 23:38
Inspectables helps you implementing inspector view and its model in swift
//
// Inspectable.swift
// Inspectables
//
// Created by Kaz Yoshikawa on 3/5/24.
//
//
// Overview:
// Inspectables a set of code help you implementing inspectable property values and its inspector value editing visual components, by using
// @InspectableValue, or @InspectableEnum property wrappers, then you may forcus writing property value editing components.
@codelynx
codelynx / Observable.swift
Created February 28, 2024 19:35
Observable property wrapper
// YObservable
// ZKit
//
// The MIT License (MIT)
//
// Copyright (c) 2016 Electricwoods LLC, Kaz Yoshikawa.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
@codelynx
codelynx / heterogeneous-inspector-view-sample.swift
Created January 29, 2024 06:48
This code demonstrate how to make concrete inspector-like view from abstract protocol.
// Swift 5.9
//
// Following code demonstrate how to implemnt inspector-like view from abstruct protocol.
// Somehow, @Binding will not work in this case under Swift 5.9
import SwiftUI
protocol Shape {
func view() -> AnyView
@codelynx
codelynx / UnsafePointer+string.swift
Created January 17, 2024 20:28
utility extension convert UnsafePointer<UInt8> to String?
extension UnsafePointer<UInt8> {
var string: String? {
return String(validatingUTF8: UnsafeRawPointer(self).assumingMemoryBound(to: CChar.self))
}
}
@codelynx
codelynx / FileHandle+Z.swift
Last active June 19, 2023 00:32
enumerate lines from FileHandle (NSFileHandle) in swift3 – good for enumerating huge text file line by line
//
// FileHandle+Z.swift
// ZKit
//
// The MIT License (MIT)
//
// Copyright (c) 2016 Electricwoods LLC, Kaz Yoshikawa.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal