enum FooBar {
case Foo, Bar
}
func foo(arg1: Int) -> Bool {
return fooBar(arg1: arg1, arg2: .Foo)
}
func bar(arg1: Int) -> Bool {
return fooBar(arg1: arg1, arg2: .Bar)
}
private func fooBar(arg1: Int, arg2: FooBar) -> Bool {
// 90% common code, and checking arg2 for divergent areas
}