diff --git a/swift-rs/example/Cargo.toml b/swift-rs/example/Cargo.toml deleted file mode 100644 index a2c5888..0000000 --- a/swift-rs/example/Cargo.toml +++ /dev/null @@ -1,12 +0,0 @@ -[package] -name = "example" -version = "0.1.0" -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -swift-rs = { path = "../" } - -[build-dependencies] -swift-rs = { path = "../", features = ["build"] } diff --git a/swift-rs/example/build.rs b/swift-rs/example/build.rs deleted file mode 100644 index 913b415..0000000 --- a/swift-rs/example/build.rs +++ /dev/null @@ -1,9 +0,0 @@ -use swift_rs::SwiftLinker; - -fn main() { - // Ensure this matches the versions set in your `Package.swift` file. - SwiftLinker::new("10.15") - .with_ios("11") - .with_package("swift-lib", "./swift-lib/") - .link(); -} diff --git a/swift-rs/example/src/main.rs b/swift-rs/example/src/main.rs deleted file mode 100644 index 00d2c15..0000000 --- a/swift-rs/example/src/main.rs +++ /dev/null @@ -1,39 +0,0 @@ -use swift_rs::{swift, Bool, Int, SRObject, SRObjectArray, SRString}; - -#[repr(C)] -struct Volume { - pub name: SRString, - path: SRString, - total_capacity: Int, - available_capacity: Int, - is_removable: Bool, - is_ejectable: Bool, - is_root_filesystem: Bool, -} - -#[repr(C)] -struct Test { - pub null: bool, -} - -swift!(fn get_file_thumbnail_base64(path: &SRString) -> SRString); -swift!(fn get_mounts() -> SRObjectArray); -swift!(fn return_nullable(null: Bool) -> Option>); - -fn main() { - let path = "/Users"; - let thumbnail = unsafe { get_file_thumbnail_base64(&path.into()) }; - println!( - "length of base64 encoded thumbnail: {}", - thumbnail.as_str().len() - ); - - let mounts = unsafe { get_mounts() }; - println!("First Volume Name: {}", mounts[0].name); - - let opt = unsafe { return_nullable(true) }; - println!("function returned nil: {}", opt.is_none()); - - let opt = unsafe { return_nullable(false) }; - println!("function returned data: {}", opt.is_some()); -} diff --git a/swift-rs/example/swift-lib/.gitignore b/swift-rs/example/swift-lib/.gitignore deleted file mode 100644 index bb460e7..0000000 --- a/swift-rs/example/swift-lib/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -.DS_Store -/.build -/Packages -/*.xcodeproj -xcuserdata/ -DerivedData/ -.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata diff --git a/swift-rs/example/swift-lib/Package.swift b/swift-rs/example/swift-lib/Package.swift deleted file mode 100644 index 7f59df0..0000000 --- a/swift-rs/example/swift-lib/Package.swift +++ /dev/null @@ -1,30 +0,0 @@ -// swift-tools-version:5.3 -// The swift-tools-version declares the minimum version of Swift required to build this package. - -import PackageDescription - -let package = Package( - name: "swift-lib", - platforms: [ - .macOS(.v10_15), // macOS Catalina. Earliest version that is officially supported by Apple. - ], - products: [ - // Products define the executables and libraries a package produces, and make them visible to other packages. - .library( - name: "swift-lib", - type: .static, - targets: ["swift-lib"]), - ], - dependencies: [ - // Dependencies declare other packages that this package depends on. - .package(name: "SwiftRs", path: "../../") - ], - targets: [ - // Targets are the basic building blocks of a package. A target can define a module or a test suite. - // Targets can depend on other targets in this package, and on products in packages this package depends on. - .target( - name: "swift-lib", - dependencies: [.product(name: "SwiftRs", package: "SwiftRs")], - path: "src") - ] -) diff --git a/swift-rs/example/swift-lib/README.md b/swift-rs/example/swift-lib/README.md deleted file mode 100644 index c88b3b8..0000000 --- a/swift-rs/example/swift-lib/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# swift - -A description of this package. diff --git a/swift-rs/example/swift-lib/src/lib.swift b/swift-rs/example/swift-lib/src/lib.swift deleted file mode 100644 index df841a8..0000000 --- a/swift-rs/example/swift-lib/src/lib.swift +++ /dev/null @@ -1,94 +0,0 @@ -import SwiftRs -import AppKit - -@_cdecl("get_file_thumbnail_base64") -func getFileThumbnailBase64(path: SRString) -> SRString { - let path = path.toString(); - - let image = NSWorkspace.shared.icon(forFile: path) - let bitmap = NSBitmapImageRep(data: image.tiffRepresentation!)!.representation(using: .png, properties: [:])! - - return SRString(bitmap.base64EncodedString()) -} - -class Volume: NSObject { - var name: SRString - var path: SRString - var total_capacity: Int - var available_capacity: Int - var is_removable: Bool - var is_ejectable: Bool - var is_root_filesystem: Bool - - public init(name: String, path: String, total_capacity: Int, available_capacity: Int, is_removable: Bool, is_ejectable: Bool, is_root_filesystem: Bool) { - self.name = SRString(name); - self.path = SRString(path); - self.total_capacity = total_capacity - self.available_capacity = available_capacity - self.is_removable = is_removable - self.is_ejectable = is_ejectable - self.is_root_filesystem = is_root_filesystem - } -} - -@_cdecl("get_mounts") -func getMounts() -> SRObjectArray { - let keys: [URLResourceKey] = [ - .volumeNameKey, - .volumeIsRemovableKey, - .volumeIsEjectableKey, - .volumeTotalCapacityKey, - .volumeAvailableCapacityKey, - .volumeIsRootFileSystemKey, - ] - - let paths = autoreleasepool { - FileManager().mountedVolumeURLs(includingResourceValuesForKeys: keys, options: []) - } - - var validMounts: [Volume] = [] - - if let urls = paths { - autoreleasepool { - for url in urls { - let components = url.pathComponents - if components.count == 1 || components.count > 1 - && components[1] == "Volumes" - { - let metadata = try? url.promisedItemResourceValues(forKeys: Set(keys)) - - let volume = Volume( - name: metadata?.volumeName ?? "", - path: url.path, - total_capacity: metadata?.volumeTotalCapacity ?? 0, - available_capacity: metadata?.volumeAvailableCapacity ?? 0, - is_removable: metadata?.volumeIsRemovable ?? false, - is_ejectable: metadata?.volumeIsEjectable ?? false, - is_root_filesystem: metadata?.volumeIsRootFileSystem ?? false - ) - - - validMounts.append(volume) - } - } - } - } - - return SRObjectArray(validMounts) -} - -class Test: NSObject { - var null: Bool - - public init(_ null: Bool) - { - self.null = null; - } -} - -@_cdecl("return_nullable") -func returnNullable(null: Bool) -> Test? { - if (null == true) { return nil } - - return Test(null) -}