Skip to content

Instantly share code, notes, and snippets.

@carlynorama
carlynorama / String+Int.swift
Last active December 9, 2023 23:18
Int Extraction Sampler
View String+Int.swift
//So MyString[3] just works. Don't use in projects with real input.
extension StringProtocol {
subscript(offset: Int) -> Character {
self[index(startIndex, offsetBy: offset)]
}
}
extension StringProtocol {
//Ignores negative signs.
View range_contains_hang.swift
public extension ClosedRange<Int> {
func crop(by other: ClosedRange<Int>) -> [ClosedRange<Int>] {
//print("cropping...")
guard self.overlaps(other) else {
//return [self]
fatalError("No overlap")
}
print("they overlap")
View Layer_InTheStyleOfAView.swift
//
// SwiftUIStyle.swift
//
//
// Created by Carlyn Maw on 8/1/23.
//
import Foundation
//https://talk.objc.io/episodes/S01E225-view-protocols-and-shapes
@carlynorama
carlynorama / vm_setup.sh
Last active July 24, 2023 20:49
Linux-VM History (Labtanza)
View vm_setup.sh
sudo apt update
sudo apt upgrade
sudo apt install clang libicu-dev build-essential pkg-config
apt install git gh
apt install libpng-dev
## NOTE THIS WAS DELETED LATER
apt install cmake
mkdir ~/swift
@carlynorama
carlynorama / StringNode.swift
Last active July 17, 2023 17:49
Generic StringNode tree for constructing nested text in Swift, with Result Builder
View StringNode.swift
//
// StringNode.swift
//
//
// Created by Carlyn Maw on 7/16/23.
// MIT License
// https://www.whynotestflight.com/excuses/hello-usd-part-11-gotta-make-it-easier-to-write-file-builders/
public struct Indent {
let count:Int
@carlynorama
carlynorama / rainbow_mesh.usd
Created June 28, 2023 23:08
Rainbow Cube USD examples
View rainbow_mesh.usd
#usda 1.0
def Xform "Rainbow"
{
def Mesh "cubeMesh"
{
float3[] extent = [(-2, -2, -2), (2, 2, 2)]
int[] faceVertexCounts = [4, 4, 4, 4, 4, 4]
int[] faceVertexIndices = [0, 1, 2, 3, 4, 5, 6, 7, 0, 6, 5, 1, 4, 7, 3, 2, 0, 3, 7, 6, 4, 2, 1, 5]
View someany.swift
protocol Vegetable {
var crunchy:Bool { get }
var volume:Int { get } //in mL
}
struct Carrot:Vegetable {
var volume: Int = 300
var crunchy = true
}
@carlynorama
carlynorama / FixedWidthInteger+Data.swift
Created March 18, 2023 23:57
Converting a fixed width integer to Data in Swift. e.g. UInt32/Int32, etc.
View FixedWidthInteger+Data.swift
extension FixedWidthInteger {
var dataBigEndian: Data {
var int = self.bigEndian
return Data(bytes: &int, count: MemoryLayout<Self>.size)
}
var dataLittleEndian: Data {
var int = self.littleEndian
View URLSessionDelegateExample.swift
import UIKit
import PlaygroundSupport
import Foundation
PlaygroundPage.current.needsIndefiniteExecution = true
//URLSessionTaskDelegate
//You use this protocol in one of two ways, depending on how you use a URLSession:
//If you create tasks with Swift’s async-await syntax, using methods like bytes(for:delegate:) and data(for:delegate:), you pass a delegate argument of this type. The delegate receives callbacks for things like task progress, while the call point awaits the completion of the task. A delegate that receives life cycle and authentication challenge callbacks as the transfer progresses.
//If you add tasks to the session with methods like dataTask(with:) and downloadTask(with:), then you implement this protocol’s methods in a delegate you set on the session. This session delegate may also implement other protocols as appropriate, like URLSessionDownloadDelegate and URLSessionDataDelegate. You can also assign a delegate of this type directly to the task to intercept callbacks before the task deliver