Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Sources/OpenGraph/Attribute/Attribute/AnyAttribute.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ extension AnyAttribute {
create(offset: offset)
}

public func setFlags(_ newFlags: Subgraph.Flags, mask: Subgraph.Flags) {
public func setFlags(_ newFlags: Flags, mask: Flags) {
flags = flags.subtracting(mask).union(newFlags.intersection(mask))
}

Expand Down
6 changes: 4 additions & 2 deletions Sources/OpenGraph/Attribute/Attribute/Attribute.swift
Original file line number Diff line number Diff line change
Expand Up @@ -194,12 +194,14 @@ public struct Attribute<Value> {

// MARK: - Flags

public var flags: Subgraph.Flags {
public typealias Flags = AnyAttribute.Flags

public var flags: Flags {
get { identifier.flags }
nonmutating set { identifier.flags = newValue }
}

public func setFlags(_ newFlags: Subgraph.Flags, mask: Subgraph.Flags) {
public func setFlags(_ newFlags: Flags, mask: Flags) {
identifier.setFlags(newFlags, mask: mask)
}
}
Expand Down
4 changes: 2 additions & 2 deletions Sources/OpenGraph/Graph/Subgraph.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ extension Subgraph {
#endif
}

public func forEach(_ flags: Subgraph.Flags, _ callback: (AnyAttribute) -> Void) {
public func forEach(_ flags: Flags, _ callback: (AnyAttribute) -> Void) {
Subgraph.apply(self, flags: flags, callback: callback)
}
}
Expand Down Expand Up @@ -62,7 +62,7 @@ extension Subgraph {
// FIXME: migrate to use @_extern(c, "xx") in Swift 6
extension Subgraph {
@_silgen_name("OGSubgraphApply")
private static func apply(_ graph: Subgraph, flags: Subgraph.Flags, callback: (AnyAttribute) -> Void)
private static func apply(_ graph: Subgraph, flags: Flags, callback: (AnyAttribute) -> Void)

@_silgen_name("OGSubgraphAddObserver")
private static func addObserver(_ graph: Subgraph, observer: () -> Void) -> Int
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,34 +46,36 @@ final class AnyAttributeCompatibilityTests: AttributeTestBase {

@Test
func setFlags() throws {
typealias Flags = AnyAttribute.Flags

let attribute = AnyAttribute(Attribute(value: 0))
#expect(attribute.flags == [])

// Test mask = []
attribute.flags = []

attribute.setFlags([Subgraph.Flags(rawValue: 1)], mask: [])
attribute.setFlags([Flags(rawValue: 1)], mask: [])
#expect(attribute.flags == [])

attribute.setFlags([Subgraph.Flags(rawValue: 2)], mask: [])
attribute.setFlags([Flags(rawValue: 2)], mask: [])
#expect(attribute.flags == [])

attribute.setFlags([Subgraph.Flags(rawValue: 1), Subgraph.Flags(rawValue: 4)], mask: [])
attribute.setFlags([Flags(rawValue: 1), Flags(rawValue: 4)], mask: [])
#expect(attribute.flags == [])

// Test mask
attribute.flags = []
attribute.setFlags([Subgraph.Flags(rawValue: 1)], mask: [Subgraph.Flags(rawValue: 1)])
#expect(attribute.flags == [Subgraph.Flags(rawValue: 1)])
attribute.setFlags([Flags(rawValue: 1)], mask: [Flags(rawValue: 1)])
#expect(attribute.flags == [Flags(rawValue: 1)])

attribute.setFlags([Subgraph.Flags(rawValue: 2)], mask: [Subgraph.Flags(rawValue: 2)])
#expect(attribute.flags == [Subgraph.Flags(rawValue: 1), Subgraph.Flags(rawValue: 2)])
attribute.setFlags([Flags(rawValue: 2)], mask: [Flags(rawValue: 2)])
#expect(attribute.flags == [Flags(rawValue: 1), Flags(rawValue: 2)])

attribute.setFlags([Subgraph.Flags(rawValue: 4)], mask: [Subgraph.Flags(rawValue: 1)])
#expect(attribute.flags == [Subgraph.Flags(rawValue: 2)])
attribute.setFlags([Flags(rawValue: 4)], mask: [Flags(rawValue: 1)])
#expect(attribute.flags == [Flags(rawValue: 2)])

attribute.setFlags([Subgraph.Flags(rawValue: 1), Subgraph.Flags(rawValue: 4)], mask: [Subgraph.Flags(rawValue: 1), Subgraph.Flags(rawValue: 2), Subgraph.Flags(rawValue: 4)])
#expect(attribute.flags == [Subgraph.Flags(rawValue: 1), Subgraph.Flags(rawValue: 4)])
attribute.setFlags([Flags(rawValue: 1), Flags(rawValue: 4)], mask: [Flags(rawValue: 1), Flags(rawValue: 2), Flags(rawValue: 4)])
#expect(attribute.flags == [Flags(rawValue: 1), Flags(rawValue: 4)])
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ final class AttributeCompatibilityTests: AttributeTestBase {
@Test
func flagSetter() {
let attribute = Attribute(value: ())
attribute.flags = Subgraph.Flags(rawValue: 1)
#expect(attribute.flags == Subgraph.Flags(rawValue: 1))
attribute.flags = .init(rawValue: 1)
#expect(attribute.flags == .init(rawValue: 1))
}
}
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import Testing
import Foundation

@MainActor
struct GraphCompatibilityTests {
@Test
func graphCreate() throws {
Expand Down