1 // Package ldmodel contains the LaunchDarkly Go SDK feature flag data model. 2 // 3 // These types contain the subset of feature flag and user segment data that is sent by LaunchDarkly to 4 // the SDK. 5 // 6 // There is a defined JSON schema for these types that is used in communication between the SDK and 7 // LaunchDarkly services, which is also the JSON encoding used for storing flags/segments in a persistent 8 // data store. The JSON schema does not correspond exactly to the exported field structure of these types; 9 // the ldmodel package provides functions for explicitly converting the types to and from JSON. See 10 // DataModelSerialization for details. 11 // 12 // Normal use of the Go SDK does not require referencing this package directly. It is used internally 13 // by the SDK, but is published and versioned separately so it can be used in other LaunchDarkly 14 // components without making the SDK versioning dependent on these internal APIs. 15 // 16 // The bulk of the flag evaluation logic is in the main go-server-sdk-evaluation package, rather than in 17 // these data model types. However, in order to allow certain optimizations that could not be done from 18 // outside the package without exposing implementation details in the API, some of the logic (such as 19 // target and clause matching) is implemented here. 20 package ldmodel 21